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

Страницы: 1
Как постоянно менять переменную в цикле ?, Всем привет! Прошу помочь с макросом!
 
Nordheim, Сама не понимаю как , но он просто заработал!
Как постоянно менять переменную в цикле ?, Всем привет! Прошу помочь с макросом!
 
Nordheim, Разобралась !! Огонь!
Как постоянно менять переменную в цикле ?, Всем привет! Прошу помочь с макросом!
 
Nordheim, Задча, чтобы он после перебора по ключу копировал данные на лист после чего переходил на второй ключ также перебирал и копировал на второй лист и т.д. (они указаны под номерами 1,2,3)
Как постоянно менять переменную в цикле ?, Всем привет! Прошу помочь с макросом!
 
Строка 18,19,20 Помогите !!
Как постоянно менять переменную в цикле ?, Всем привет! Прошу помочь с макросом!
 
Друзья, всем привет !
Есть такой код, но не понимаю, как сделать так чтобы переменная в цикле обновлялась ?

Код
Sub rrwr()
Dim a, b, c, i, iLastrow As Long
Dim d As String
    iLastrow = Cells(Rows.Count, 3).End(xlUp).Row
    
    For i = 1 To iLastrow
        Cells(i + 1, 6) = Cells(i + 1, 1) & Cells(i + 1, 2) & Cells(i + 1, 3)
    Next
    


For i = 1 To iLastrow ' счетчик строк на листе 2
    If i = 2 Then
        i = 2
    End If
    For a = 1 To iLastrow 'счетчик строк на листе 1
        If Лист2.Cells(1 + i, 5) = Лист1.Cells(a + 1, 6) Then
            Лист1.Rows(a + 1).Copy
              d = Лист2.Cells(1 + i, 4).Value
                Sheets(d).Rows(a + 1).PasteSpecial
         
        
        Else
            Debug.Print "ne ok"
        End If
    
    Next
Next
    'For a = 1 To iLastrow
 
      '  If Лист2.Cells(i + 1, 5) = Лист1.Cells(i + 1, 6) Then
       '     Debug.Print "ok"
      '  Else
       '     Debug.Print "ne ok"
        'End If
  '  Next


End Sub
Изменено: Света Маркина - 05.02.2019 11:43:42
Найти лист с номером с названием из ячейки, Всем привет! Прошу помочь с макросом!
 
Ребят, всем привет
есть макрос который конкантенирует данные.
После чего на листе 2 есть список
Макрос должен копировать данные на лист с таким же номером.
Не понимаю как это сделать, помогите !
Пример прикладываю!
Код
Option Explicit


Sub rrwr()
Dim a, b, c, d, i, iLastrow As Long
    iLastrow = Cells(Rows.Count, 3).End(xlUp).Row
    
    For i = 1 To iLastrow
        Cells(i + 1, 6) = Cells(i + 1, 1) & Cells(i + 1, 2) & Cells(i + 1, 3)
    Next
    
For i = 1 To iLastrow

    For a = 1 To iLastrow
    
        If Лист2.Cells(2, 5) = Лист1.Cells(a + 1, 6) Then
            Rows(a + 1).Copy
                Лист2.Cells(2, 4) = d
                d = Лист2.Cells(2, 4).Value
                Лист1(d).Rows(a + 1).Paste
        
        Else
            Debug.Print "ne ok"
        End If
    Next
Next
   

End Sub
Доработать макрос сравнения строк и переноса на лист по названию ячейки
 
Друзья, всем привет!

Только начинающий прогер )))0
Есть массив данных на листе1, на листе 2 список с названиями (123,212 и т.д.). В идеале, макрос берёт на листе 2 первый договор, ищет все такие договора на листе1 (как по ключу 123,212). И копирует эти договора на лист под своим номером в такие же ячейки. Номера договоров по порядку 1,2,3 .. ,
После чего, переходит на листе 2 к следующему договору.

Думала, попробовать через item, но не получается ((
Подтягивать данные с другого листа по определённому ключу, аналог ВПР в макросе
 
Все получилось, Спасибо!
Подтягивать данные с другого листа по определённому ключу, аналог ВПР в макросе
 
Ребят, не могу разобраться с ubound and ReDim и прошу помочь доработать макрос!
Надо чтобы он макросом подтягивал данные с другого листа по определённому ключу.
333 - страницы результата. 222 - оттуда берутся данные.
Боги экселя помогите пожалуйста!!!, сижу мучаюсь 4 часа уже ))

Код
Sub compare2223()
    Dim a, b, c, iLastrow As Long, i As Long, ii As Long

    '1. данные в два массива
    With Sheet3    'используется кодовое имя
        iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
        a = Range(.[I2], .Range("I" & iLastrow)).Value
    End With

    With Лист1    'используется кодовое имя
        iLastrow = .Cells(Rows.Count, 9).End(xlUp).Row
        b = Range(.[I2], .Range("I" & iLastrow)).Value
    End With

    '2.пустой массив для результата
    ReDim c(1 To UBound(a), 1 To 9)

    With CreateObject("Scripting.Dictionary")
    
        '3.в словарь уникальные и номер строки из массива
        For i = 1 To UBound(b)
            .Item(b(i, 1)) = i
        Next

        '4.по словарю из массива b в массив c
        For i = 1 To UBound(a)
            If .exists(a(i, 1)) Then
                c(i, 9) = b(.Item(a(i, 18)), 9)
            End If
        Next
    End With

    '5. выгрузка всего массива
    With Sheet3    'используется кодовое имя
        .[F2].Resize(UBound(c), 3) = c
        .Activate
    End With

End Sub
Копирование таблицы без строк, где в столбце F есть 1., Друзья, помогите написать макрос!
 
Юрий М, Спасиибо!!!! Все работает !! Вы бог !
Копирование таблицы без строк, где в столбце F есть 1., Друзья, помогите написать макрос!
 
А с помощью макроса можно это сделать?
По нажатию кнопки ?
Копирование таблицы без строк, где в столбце F есть 1., Друзья, помогите написать макрос!
 
Искал в на форуме, но ничего не получилось найти. Сама в vba не разбираюсь (( Помогите пожалуйста!
В приложенном файле на листе 1 исходные данные, на листе Резы то что должно получиться.
Задача: Скопировать с помощью "макроса" таблицу (без строк где есть единицы в столбце F) на другой лист ниже данных.
Изменено: chep-kep - 17.12.2018 10:57:25
Доработать макрос сравнения нескольких столбцов с несколькими столбцами., Сравнение столбцов
 
Hugo, Последний вопрос ! Попробовал сделать cравнения 4 столбцов, но ничего не выходит, посмотри, пожалуйста код )
Код
'Макросом -
'1.два диапазона в два массива
'2.создание массива для результатов
'3.один перебор 300 значений массива в словарь
'4.100 000 проверок массива на наличие в словаре и заполнение единицами массива результата
'5.выгрузка результатов
 
Sub compare()
    Dim a, b, c, d, e, iLastrow As Long, i As Long
    Dim tm: tm = Timer
    '1.
        With Лист2 'используется кодовое имя
                iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
                 b = Range(.[A2], .Range("d" & iLastrow)).Value
    
        End With
 
        With Лист1 'используется кодовое имя
                iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
                a = Range(.[A2], .Range("d" & iLastrow)).Value
 
        End With
 
'2.
            ReDim c(1 To UBound(a), 1 To 1)
 
'3.
         With CreateObject("Scripting.Dictionary")
                     For i = 1 To UBound(b) 
                    .Item(b(i, 1) & "|" & b(i, 2) & "|" & b(i, 3) & "|" & b(i, 4)) = CStr(1)
                Next
 
'4.
                    For i = 1 To UBound(a)
                    If .exists(a(i, 1) & "|" & a(i, 2) & "|" & a(i, 3) & "|" & a(i, 4)) Then c(i, 1) = 1
                Next
        End With
 
'5.
        With Лист1 'используется кодовое имя
            Range(.[F1], .Range("F" & iLastrow)).Value = c
        End With
 
MsgBox Timer - tm 'окно с таймером, годная тема
End Sub

Результат должен быть, напротив строки собака 2 2 2   должна быть единица.!
Изменено: chep-kep - 29.11.2018 18:10:04
Доработать макрос сравнения нескольких столбцов с несколькими столбцами., Сравнение столбцов
 
Hugo, Лучший !! Спасибо )))
Доработать макрос сравнения нескольких столбцов с несколькими столбцами., Сравнение столбцов
 
Всем привет! Есть 2 столбца с данными на одной странице и два столбца на другой странице, между ними надо провести сравнение и там где оно происходит вывести в столбец С единицу. Есть макрос который делает сравнение по двум столбцам.
Результатом в столбце С  на первой странице должна выводиться единичка напротив строки ПЯТЬ 5, т.к. только она совпадает на двух листах.
Код

Sub compare()
Dim a, b, c, d, e, iLastrow As Long, i As Long
Dim tm: tm = Timer
'1.
With Sheet2 
iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
b = Range(.[A1], .Range("A" & iLastrow)).Value
'd = Range(.[B1], .Range("B" & iLastrow)).Value

End With

With Sheet1
iLastrow = .Cells(Rows.Count, 1).End(xlUp).Row
a = Range(.[A1], .Range("A" & iLastrow)).Value
'e = Range(.[B1], .Range("B" & iLastrow)).Value

End With

'2.
ReDim c(1 To UBound(a), 1 To 1)

'3.
With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(b)
            .Item(b(i, 1)) = CStr(1)
    Next

'4.
    For i = 1 To UBound(a)
      If .exists(a(i, 1)) Then c(i, 1) = 1
    Next
End With

'5.
With Sheet1 
Range(.[C1], .Range("C" & iLastrow)).Value = c
End With

MsgBox Timer - tm 
End Sub
Страницы: 1
Наверх