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

Страницы: 1
Условия фильтра кодом vba, При замене условий отбора (Criteria1:) в коде макрорекордера условия не выполняются
 
Действительно! Спасибо, волшебники! Что-то я вообще.....
Условия фильтра кодом vba, При замене условий отбора (Criteria1:) в коде макрорекордера условия не выполняются
 
Сорри!
Условия фильтра кодом vba, При замене условий отбора (Criteria1:) в коде макрорекордера условия не выполняются
 
Приветствую, знатоки!
1. Записал макрорекордором макрос по установке фильтрации. Записанный код работает исправно.
2. в Criteria1: - переписал условия фильтрации в коде. Фильтр выставился, но в самом фильтре значений нет вообще никаких.
Прошу помочь и указать причины:
Код
Sub Макрос2()

'Записано макросом. При запуске макроса - работает
    ActiveSheet.Range("$B$23:$F$500").AutoFilter Field:=2, Criteria1:=Array( _
        "Зав.секцией", "кассир", "Кассир ТЗ"), Operator:=xlFilterValues
'Заменил условия отбора и опробовал код. Не работает
    ActiveSheet.Range("$B$23:$F$500").AutoFilter Field:=2, Criteria1:=Array( _
        "РОП", "МКО2К", "менеджер дизайн студии", "МКО1К"), Operator:=xlFilterValues
End Sub
Скрытый текст
VBA. Плавное перемещение картинки на UserForm, Нужен цикл на плавное перемещение картинки за 3 секунды
 
Цитата
написал:
  Image2.Left = -204
   For i = -204 To 12 Step 3
       Image2.Left = i
       For j = 1 To 4000: DoEvents: Next
   Next
Спасибо, Игорь! Этот вариант лучше, чем с задержкой времени. Скорее всего от объема картинки много зависит. Попробую уменьшить качество.
VBA. Плавное перемещение картинки на UserForm, Нужен цикл на плавное перемещение картинки за 3 секунды
 
Попробовал такое, но картинка при движении все равно дергается (меняет цвет):
Код
Image5.Left = -204
For i = -204 To 12
DoEvents
i = i + 0.00000005
DoEvents
Image5.Left = i
DoEvents
Application.Wait Now + ((TimeValue("00:00:01") / 1000) * 200)
DoEvents
VBA. Плавное перемещение картинки на UserForm, Нужен цикл на плавное перемещение картинки за 3 секунды
 
Пункт А объекта Image2.Left =-204, Пункт В объекта Image2.Left =12
VBA. Плавное перемещение картинки на UserForm, Нужен цикл на плавное перемещение картинки за 3 секунды
 
Кнопка CommandButton4 двигает картинку
VBA. Плавное перемещение картинки на UserForm, Нужен цикл на плавное перемещение картинки за 3 секунды
 
Скрытый текст
Пробовал через Application.Wait - задержка. Работает не корректно.
Нашел похожее в просторах инета, но тут Loop на постоянную и по всей userform картинка передвигается. Переписать двигать из пункта А в пункт В мозгов не хватило:
Код
Private Sub CommandButton1_Click()
End
End Sub
Private Sub UserForm_Activate()
On Error Resume Next
Do
Label1 = Format(Date, "dddd, dd mmm yyyy")
Label2 = Format(Time, "hh:mm:ss AM/PM")
Label3.Left = Label3.Left - 2
If Label3.Left <= 0 - Label3.Width Then Label3.Left = Me.Width
For i = 1 To 8000000
Next
DoEvents
Loop
End Sub
Изменено: Sanja - 10.07.2024 15:32:41 (Изменил название темы)
Цикл на поиск ближайшей большей назначенной даты., С помощью Find ищу дату в диапазоне. Если есть, то определяет номер строки. Если нет! Помогите создать цикл на myPhrase = myPhrase + 1
 
Цитата
написал:
   Dim myPhrase As Variant, myCell As Range
   Workbooks(1).Activate
   myPhrase = Range("F4").Value 'Это дата в ячейке
   Workbooks(2).Activate
   Do
       Set myCell = Range("G2:G1200").Find(myPhrase)
       If Not myCell Is Nothing Then
           MsgBox myCell.Row 'выводит номер строки, если нашел
           Exit Do
       Else
           MsgBox "даты нет!"
           myPhrase = myPhrase + 1
           If myPhrase > DateSerial(2030, 1, 1) Then
               MsgBox "Устал.", vbCritical
               Exit Do
           End If
           'Нужно настроить цикл на поиск ближайшей большей даты myPhrase, чтобы возвращал на If
       End If
   Loop
Спасибо! Мудрое решение.
Цикл на поиск ближайшей большей назначенной даты., С помощью Find ищу дату в диапазоне. Если есть, то определяет номер строки. Если нет! Помогите создать цикл на myPhrase = myPhrase + 1
 
Код
            Dim myPhrase As Variant, myCell As Range
            Workbooks(1).Activate
            myPhrase = Range("F4").Value 'Это дата в ячейке
            Workbooks(2).Activate
          
                Set myCell = Range("G2:G1200").Find(myPhrase)
                If Not myCell Is Nothing Then
                    MsgBox myCell.Row 'выводит номер строки, если нашел
                Else
                MsgBox "даты нет!"
                myPhrase = myPhrase + 1
                'Нужно настроить цикл на поиск ближайшей большей даты myPhrase, чтобы возвращал на If
                End If
Изменено: IvanVictorovich2 - 26.04.2024 12:24:26 (ошибка в тексте)
ПЕРЕИМЕНОВАТЬ_ЛИСТЫ_СОГЛАСНО_ТЕКСТА_ИЗ_ДИАПАЗОНА, Приветствую, знатоки! Не получается совместить переменные для имен листов. При первом круге третий лист переименоваться правильно, далее макрос подхватывает имя первого круга в Range("B1") и пытается переименовать вновь лист 3. Помогите, пожалуйста.
 
Код
Sub ПЕРЕИМЕНОВАТЬ_ЛИСТЫ_СОГЛАСНО_ТЕКСТА_В_ДИАПАЗОНЕ()
'Шаг 1: Объявить переменные
Dim MyRange As Range
Dim i As Long
Dim MyCell As Range
'Шаг 2: Определение целевого диапазона.
Set MyRange = Range("B1:K1") 'ДИАПАЗОН СО ЗНАЧЕНИЯМИ ДЛЯ ПЕРЕИМЕНОВАНИЯ ЛИСТОВ
i = 3
'Шаг 3: Запуск цикла через диапазон.
For Each MyCell In MyRange
'Шаг 4: Какое-либо действие с каждой ячейкой.
If MyCell.Value = "" Then
Exit Sub
ElseIf MyCell.Value <> "" Then
Application.ScreenUpdating = False
            Worksheets(i).Name = MyCell.Value
Application.ScreenUpdating = True
'Шаг 5: Перейти к следующей ячейке в диапазоне

i = i + 1
End If
'Шаг 5: Перейти к следующей ячейке в диапазоне
Next MyCell
End Sub
Спасибо всем, кто отозвался! Малость перекроил, заработало. Модератору мои извинения, но тему реально не удалось поменять. Буду далее стараться оформлять по правилам.
ПЕРЕИМЕНОВАТЬ_ЛИСТЫ_СОГЛАСНО_ТЕКСТА_ИЗ_ДИАПАЗОНА, Приветствую, знатоки! Не получается совместить переменные для имен листов. При первом круге третий лист переименоваться правильно, далее макрос подхватывает имя первого круга в Range("B1") и пытается переименовать вновь лист 3. Помогите, пожалуйста.
 
Что-то не получается что-нибудь в теме поменять
ПЕРЕИМЕНОВАТЬ_ЛИСТЫ_СОГЛАСНО_ТЕКСТА_ИЗ_ДИАПАЗОНА, Приветствую, знатоки! Не получается совместить переменные для имен листов. При первом круге третий лист переименоваться правильно, далее макрос подхватывает имя первого круга в Range("B1") и пытается переименовать вновь лист 3. Помогите, пожалуйста.
 
Sub ПЕРЕИМЕНОВАТЬ_ЛИСТЫ_СОГЛАСНО_ТЕКСТА_ИЗ_ДИАПАЗОНА()
'Шаг 1: Объявить переменные
Dim MyRange As Range
Dim i As Long
Dim MyCell As Range
'Шаг 2: Определение целевого диапазона.
Set MyRange = Range("B1:K1") 'ДИАПАЗОН СО ЗНАЧЕНИЯМИ ДЛЯ ПЕРЕИМЕНОВАНИЯ ЛИСТОВ

'Шаг 3: Запуск цикла через диапазон.

For Each MyCell In MyRange
'Шаг 4: Какое-либо действие с каждой ячейкой.
If MyCell.Value <> "" Then
Application.ScreenUpdating = False
           For i = 3 To Worksheets.Count 'НАЧАТЬ ПЕРЕИМЕНОВЫВАТЬ С 3-го ЛИСТА и ДО КОНЦА
           Worksheets(i).Name = MyCell.Value
Application.ScreenUpdating = True
'Шаг 5: Перейти к следующей ячейке в диапазоне

Next i

End If
'Шаг 5: Перейти к следующей ячейке в диапазоне
Next MyCell
End Sub
Изменено: IvanVictorovich2 - 22.01.2024 15:57:50 (Не верно оформлено)
Сбор инфомации с двух таблиц в одну, Есть ли алгоритм, который дает возможность собирать инофрмацию из двух таблиц в одну
 
В поисковике : Объединение таблиц в Google Таблицах
Определить индекс активной книги, Та книга с которой запускается макрос должна быть Workbook(1)
 
Спасибо всем! Мой вышеуказанный код показал мне подсказку. Вышел из положения так:
Код
If ActiveWorkbook.Name <> Workbooks(1).Name Then
    MsgBox (Space(50) & "ВНИМАНИЕ!" & Chr(13) & Space(5) & "В этой процедуре следует закрыть все предыдущие, ранее открытые файлы Excel.")
Else
    MsgBox ActiveWorkbook.Name
End If
Определить индекс активной книги, Та книга с которой запускается макрос должна быть Workbook(1)
 
Цитата
написал:
Проверить, открыты ли ещё книги кроме активной?
1. Имена сообщающихся файлов всегда будут разными, но макрос активной Workbook(1) всегда один, который подтягивает данные открытой Workbook(2).
2. Макрос не должен прекращаться если порядок вышеизложенный (1-макрос,2), так как выполниться при открытых двух книгах
3. А в этом "...Проверить, открыты ли ещё книги кроме активной?...", макрос всегда будет прекращаться
Определить индекс активной книги, Та книга с которой запускается макрос должна быть Workbook(1)
 
Код
If ActiveWorkbook./Index/ <> 1 Then
    MsgBox (Space(50) & "ВНИМАНИЕ!" & Chr(13) & Space(5) & "В этой процедуре следует закрыть все предыдущие, ранее открытые файлы Excel.")
Else
    MsgBox ActiveWorkbook.Name
End If

Читал похожую тему 2010, но там нашлось решение только Worksheets("Лист2").Index  - листы. Подскажите, как можно решить эту задачу в отношении книги? В образце кода специально /Index/ поставил в "/****/" для наглядности.
Замена пароля в книге с VBA, Пробовал через ActiveWorkbook. менять пароль, макрос ругается на неверный пароль. \Первые две строки в коде\. В ЧЕМ ОШИБКА?
 
Дмитрий(The_Prist) Щербаков, Спасибо за помощь и разъяснения. Помогло!
Замена пароля в книге с VBA, Пробовал через ActiveWorkbook. менять пароль, макрос ругается на неверный пароль. \Первые две строки в коде\. В ЧЕМ ОШИБКА?
 
Ваша мысль обратиться к активной книге - понятна, Вы разъяснили мне значение - This...Сейчас испробую. "Как именно?" - с ячейки. Структуру книги менять не собирался. Только защита для входа в файл.
Замена пароля в книге с VBA, Пробовал через ActiveWorkbook. менять пароль, макрос ругается на неверный пароль. \Первые две строки в коде\. В ЧЕМ ОШИБКА?
 
Цитата
написал:
On Error GoTo 0
На файле пароль стоит изначально "123456". Попробовал. On Error GoTo 0 - только ошибку пропускает, но не меняет на "8888"
После этого запускаю /может здесь что-то?/. При открытии ручками, на файле остается пароль прежний:
Код
ActiveWorkbook.Close SaveChanges:=True
Замена пароля в книге с VBA, Пробовал через ActiveWorkbook. менять пароль, макрос ругается на неверный пароль. \Первые две строки в коде\. В ЧЕМ ОШИБКА?
 
Код
        'ActiveWorkbook.Unprotect Password:="123456" 'Range("AH1").Value ' ЗДЕСЬ РУГАЕТСЯ, ЧТО ПАРОЛЬ НЕ ВЕРНЫЙ
        'ActiveWorkbook.Protect Password:="8888" 'Range("AI1").Value
        
        ThisWorkbook.Unprotect Password:="123456" 'Если пароля нету, то только ThisWorkbook.Unprotect
        'Установка защиты
        ThisWorkbook.Protect Password:="8888"
                
        ActiveWorkbook.Close SaveChanges:=True
Вообще, планирую Password: с ячейки Range("AI1").Value подтянуть.
Видел подобную тему на сайте через ThisWorkbook. сделать, но здесь такая же ошибка.

Подобная тема
Страницы: 1
Наверх