Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 34 След.
Макрос: протяжка столбцов до последней заполненной строки (доработка)
 
Gagarin13, Может так?...
Код
Option Explicit

Sub AutoFillToRow(rngBeg As Range, rEnd As Long)
Dim rngEnd As Range
With rngBeg
  If rEnd >= .Row Then
    Set rngEnd = .Resize(rEnd - .Row + 1)
  Else
    If rEnd < .Row Then Set rngEnd = .Offset(rEnd - .Row).Resize(.Row - rEnd + .Rows.Count)
  End If
  .AutoFill Destination:=rngEnd, Type:=xlFillDefault
End With
End Sub

Sub Заполнить()
Dim x, firstRowData As Long, rEnd As Long, rngUsed As Range, rngBeg As Range
Set rngUsed = ActiveSheet.UsedRange
firstRowData = 12 'первая строка данных в таблице
rEnd = rngUsed.Row + rngUsed.Rows.Count - 1 'последняя используемая строка на листе
For Each x In Array(1, 2, 5, 6, 13, 14, 15, 21) 'в каких столбцах нужен AutoFill
  Set rngBeg = Cells(firstRowData, x) 'за основу первая строка данных таблицы
'  Set rngBeg = Range(Cells(firstRowData, x), Cells(rEnd - 1, x))'за основу диапазон кроме последней строки данных таблицы
  AutoFillToRow rngBeg, rEnd
Next
End Sub

Работа с Яндекс диском из vba, Загрузить файл, скачать, создать директорию, переименовать
 
Код
Function WebDavDsk(lgn$, psw$, Optional fldr$) As String
Dim fso As Object, netDsk As Object, dskPath$, i&
Set netDsk = CreateObject("WScript.Network")
Set fso = CreateObject("Scripting.FileSystemObject")
  On Error Resume Next
  For i = 65 To 90
    dskPath = Chr(i) & ":"
    If Not fso.DriveExists(dskPath) Then
      netDsk.MapNetworkDrive dskPath, "https://webdav.yandex.ru:443/" & fldr, False, lgn, psw
      If Err.Number = 0 Then Exit For Else dskPath = "": Err.Clear
    End If
  Next
  On Error GoTo 0
WebDavDsk = dskPath
End Function

Sub NetDskOff(dskPath$)
Dim fso As Object, x, netDsk As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set netDsk = CreateObject("WScript.Network")
On Error Resume Next
For Each x In fso.Drives
  dskPath = x.Path: If fso.FolderExists(dskPath) Then netDsk.RemoveNetworkDrive dskPath, True, True: Exit For
Next
End Sub

Sub ПримерИспользования()
Dim БукваПодключаемогоДиска$
БукваПодключаемогоДиска = WebDavDsk("Логин", "Пароль", "Папка")
'vcomp71 написал: Загрузить файл, скачать, создать директорию, переименовать
'Здесь все это делаем что хотели

NetDskOff БукваПодключаемогоДиска 'Отключаем диск после работы
End Sub

Изменено: AAF - 15.10.2018 21:31:00
ячейки с зада :), и такое бывает
 
Сергей, Без серьезного творческого подхода лень корни не пустит. А без корней, она не цветет и не плодоносит...
ячейки с зада :), и такое бывает
 
Видимо лень слишком сложный инструмент... :)
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
Приношу свои извинения, если что не так...
Как смогу - проверю, и, кроме того, код уже переписан, который использую....
Просто не было возможности ответить....
Внесу изменения в течение недели.
Еще раз приношу извинения... :(
Изменено: AAF - 18.08.2018 14:08:51
Делимся..., разным
 
Подумай о других...
Сортировка в двумерном массиве VBA Excel, Написал тут небольшую процедурку, может кому будет полезна
 
Цитата
Inexsu написал:
Type mismatch: array or user-defined type expected
Поданные массивы не соответствую заявленному типу (либо ДвумерныйМассив, либо МассивИндексов)
Ошибка при заполнении списка при смене текущего листа
 
lechiy, если тупо и в лоб и только для работы с ComboBox(ListBox), не трогая данные листов и обрабатывается первая колонка ComboBox(ListBox)
добавьте в код UserForm
Код
Option Explicit

Sub UnqVal(ctrl, a)
Dim i As Long, d As Object
With Me.Controls(ctrl)
  .List = a: If .ListCount = 0 Then Exit Sub
  Set d = CreateObject("Scripting.Dictionary"): d.CompareMode = 1
  Do While i < .ListCount
    If d.exists(.List(i, 0)) Then .RemoveItem (i) Else d(.List(i, 0)) = Empty: i = i + 1
  Loop
End With
End Sub

Private Sub UserForm_Initialize()
UnqVal "ComboBox1", Array("a", "b", "c", "b", "c", "d", "a")
End Sub
Изменено: AAF - 11.07.2018 15:11:47
Макрос сохраняет файл иногда с расширением, а иногда без
 
Код
Filename = L1.Cells(6, 31) & ".xlsx"
Ошибка вызова формы, Перестала работать кнопка вызова формы
 
Цитата
korostelevn85 написал:
В чем может быть причина?
В коде UserForm. Поставьте точки останова в коде UserForm и отловите там ошибку...
Закрытие или сохранение без активного фильтра.
 
inseption, посмотрите в сторону надстроек... Там все аналогично.
Макрос открытие книги и определенного листа., Макросом открыть книгу и необходимый лист, ссылка указана я ячейках.
 
Файл пример прилагайте ;)
Код
Sub Аптека()
Dim wbkSource As Workbook
  Set wbkSource = Workbooks.Open(ActiveSheet.Range("A1"), Password:="0301")
  wbkSource.Sheets(ThisWorkbook.ActiveSheet.Range("B2").Value).Activate
End Sub
Закрытие или сохранение без активного фильтра.
 
inseption, вот поэтому нужно читать правила форума, которые гласят о предоставлении файла примера...
Код
Private Sub Workbook_Open()
Dim wks As Worksheet
For Each wks In Worksheets
  With wks
    If .AutoFilterMode Then If .AutoFilter.FilterMode Then .ShowAllData
  End With
Next
End Sub
Изменено: AAF - 30.06.2018 14:48:24
Макрос открытие книги и определенного листа., Макросом открыть книгу и необходимый лист, ссылка указана я ячейках.
 
Код
Sub Аптека()
  Set wbkSource = Workbooks.Open(Range("A1"), Password:="0301")
  wbkSource.sheets(thisworkbook.activesheet.Range("B2")).activate
End Sub
Закрытие или сохранение без активного фильтра.
 
Код
Public Sub Auto_Open()
    Dim wks As Worksheet
   For Each wks In Worksheets
        with wks
            If .AutoFilterMode Then If .AutoFilter.FilterMode Then .ShowAllData
        end with
    next
end sub
Изменено: AAF - 30.06.2018 13:45:14
Поиск и группировка данных по строкам, Группировка значений по критерию и их объединение и запись в строку
 
Qwertys, Задача весьма стандартная, только не понятно зачем на одном листе источник и результат?
Лучше результат поместить на отдельном листе или нет?
Изменено: AAF - 28.06.2018 12:58:55
Автозаливка строк по двум условиям
 
Andrei0808, Вы хотите сказать, что таблица в представленном виде может иметь различное количество строк?
Поставить символ в ячейку таблицы на основании координат ответа.
 
Aibar, Предложите название темы, а то Ваше "Заполнение ячейки"...
И как из названия темы можно заключить, чтто Ваша задача отличается от того, чем занимается любой пользователь работающий в Excel (см. сообщение #2)
Поставить символ в ячейку таблицы на основании координат ответа.
 
Цитата
Aibar написал:
по коду ответов тестов.
????
"Найти все" по заголовкам: выделить, скопировать и вставить столбцы
 
Код
Sub TestCopyValue()
Dim aField, x, xColumn as range, c&
shNm1 = "Лист1"
shNm2 = "Лист2"
aField = Array("Столбец A1", "Столбец B1", "Столбец D1")
For Each x In aField
  Set xColumn = GetColumnRange(shNm1, x, 1)
  If Not xColumn Is Nothing Then c = c + 1: Sheets(shNm2).Cells(2, c).Resize(xColumn.Count).Value = xColumn.Value
Next
End Sub
Изменено: AAF - 21.06.2018 03:44:29
"Найти все" по заголовкам: выделить, скопировать и вставить столбцы
 
golal,
Цитата
Михаил Комиссаров написал:
По скольку нет файла примера
Можно делать все что угодно и не факт, что эта работа будет полезна вопрошающему, только время потратить...  ;)

Код
Function GetColumnRange(ByVal nmSheet, ByVal nmField, Optional ByVal rField& = 1) As Range
Dim x, i&
With Sheets(nmSheet).UsedRange
  If rField < .Row Then rField = .Row
  With .Offset(rField - .Row).Resize(.Rows.Count - rField + .Row)
    For Each x In .Resize(1)
      If nmField = x Then Set GetColumnRange = .Offset(1, i).Resize(.Rows.Count - 1, 1): Exit Function
      i = i + 1
    Next
  End With
End With
End Function

Sub ВыделитьНеобходимыйДиапазон()
Dim ИмяЛиста$, ИмяНужногоПоля$, НомерСтрокиЗаголовков&
ИмяЛиста = "Лист1"
ИмяНужногоПоля = "ID"
НомерСтрокиЗаголовков = 1
GetColumnRange(ИмяЛиста, ИмяНужногоПоля, НомерСтрокиЗаголовков).Select
End Sub
Изменено: AAF - 20.06.2018 16:30:32
[ Закрыто] Ошибка: Макрос не обрабатывает отчёт до конца.
 
vikttur, а вдруг неизвестно, я поэтому про необходимый минимум и говорю...
Может здесь какие-то новые навороты.
Изменено: AAF - 20.06.2018 13:52:02
[ Закрыто] Ошибка: Макрос не обрабатывает отчёт до конца.
 
netmakar, Вы хотя бы дайте ссылку на задачу... (старую тему)
Определить неизвестные свойства ListBox на форме
 
Alemox, по горизонталке да, по вертикали смысла нет, поэтому идей нет (не искал вариантов).
ps
Да, уточню, этих неизвестных свойств нет :)
Изменено: AAF - 20.06.2018 12:13:01
Определить неизвестные свойства ListBox на форме
 
Alemox, как-то была тема по этому вопросу, ну и я уже забыл в чем там дело, но, именно, тогда я накатал такую функцию:
Проверено на размерах шрифтов = 6 - 14 (для моих проектов более, чем достаточно)...
Код
Function SetListBoxRowsCount(lst As Control, Optional ByVal rCount&, Optional rAuto As Boolean)
Dim d, hAdd!, r&, lHeight!, iHeight As Boolean
Static y!
On Error Resume Next
With lst
  If rCount > 0 Then
    If y Then
      If rAuto Then If rCount > .ListCount Then rCount = .ListCount
      .IntegralHeight = False: .Height = y * (rCount + 1): .IntegralHeight = True: DoEvents
      SetListBoxRowsCount = y: Exit Function
    End If
  Else
    lHeight = .Height: iHeight = .IntegralHeight
  End If
  r = 1
  Set d = CreateObject("Scripting.Dictionary")
  .IntegralHeight = False: .Height = lst.Font.Size * 0.75: .IntegralHeight = True: DoEvents
  hAdd = .Height + 1.5: y = .Height
  Do Until r >= 10
    .IntegralHeight = False: .Height = .Height + hAdd: .IntegralHeight = True: DoEvents
    y = Round((.Height - y) / 0.75): d(y) = d(y) + 1: If d(y) * 2 - 3 > d.Count Then Exit Do
    y = .Height: r = r + 1
  Loop
  y = y * 0.75: .IntegralHeight = False:
  If lHeight > 0 Then
    .Height = lHeight + y: .IntegralHeight = True: DoEvents: .IntegralHeight = iHeight
  Else
    .Height = y * (rCount + 1): .IntegralHeight = True: DoEvents
  End If
End With
SetListBoxRowsCount = y
End Function

Я ее не совершенствовал, ибо работает...
Возвращает высоту строки ListBox
lst - сам контрол
rCount - количество строк
rAuto - назначение высоты ListBoox по количеству строк или по rCount ( общему количеству строк)
ps
Это работает уже давно и сбоев не давало, но можно было бы переписать ее в более эффективной форме.
Просто суровая действительность не возникала, а желанию было некогда. :)
psps
Вот, нашел, но там еще не эта функция, но что б понять идею...
Изменено: AAF - 20.06.2018 11:59:21
Удалить символы 7 и 8 из маркировки, Необходимо удалить из автоматической маркировки цифры 7 и 8
 
Qwerty Z, Нужен еще макрос? :)
Удалить символы 7 и 8 из маркировки, Необходимо удалить из автоматической маркировки цифры 7 и 8
 
Qwerty Z, Если у Вас русский Excel
Если нет, то замените названия функций на соответствующие языку. В Ya-Google эти соответствия легко найдутся..
Изменено: AAF - 20.06.2018 10:30:14
Удалить символы 7 и 8 из маркировки, Необходимо удалить из автоматической маркировки цифры 7 и 8
 
Если не хотите макросом, то фильтр Вам точно не поможет связать код с нумерацией
="KZ"&ПОДСТАВИТЬ(ДЕС.В.ВОСЬМ(A1;4);"7";"9")
И название темы не соответствует...
Скорее так:
"Формирование кодов маркировки с пропуском значений, содержащих 7 или 8"
Изменено: AAF - 20.06.2018 08:35:15
Удаление текста в ячейке одновременно до и после символа
 
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ЛЕВСИМВ(A16;ПОИСК("от";A16;2)-1);"Счет-фактура полученный";""))
Обеспечение безопасности данных.
 
Цитата
vestes написал:
совет  AAF  это как я понял для пользователей, меняющих данные
Так для тех, кто не меняет данные еще проще, лежит xls с состоянием на текущий момент и все.
ps
Ведь есть преимущества перед картинкой и поиск и автофильтр все пожалуйста
Изменено: AAF - 17.06.2018 14:01:33
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 34 След.
Наверх