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

Страницы: 1
Поиска не заполненых ячеек., Поиск и переход к незаполненной ячеки
 
Цитата
написал:
.Cells(10, cl.Offset(, i).Column).Select

Данная команда выделяет ячейку в названии не заполненного столбца, а нужно чтоб именно ячейку, допустим сотрудник Петров не заполнен год рождения, и он выделяет ячейку куда нужно внести год рождения. И в случае если работаешь на одном листе, а не заполненная ячейка на другом, выполняется переход на этот лист и не заполненную ячейку..
Изменено: Egor87 - 15.04.2025 15:07:10
Поиска не заполненых ячеек., Поиск и переход к незаполненной ячеки
 
Цитата
написал:
Не обязательно заключать в тэги все сообщение, достаточно только код)
На будущее учту :)
Поиска не заполненых ячеек., Поиск и переход к незаполненной ячеки
 
Доброго времени суток!
Есть такой макрос, помогите прописать в него команду, чтоб он перед или после MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly перекидывал на ячейку которая указывается MsgBox

Код
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
With Worksheets("лист1") 
  lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  For Each cl In .Range("B12841:b" & lRow).Cells
      If cl <> Empty And Not cl Like "*Резерв*" Then
          For i = 0 To 8
              If i <> 3 And cl.Offset(, i) = Empty Then
                  MsgBox "Не заполнена ячейка &#39;" & .Cells(10, cl.Offset(, i).Column).Text & "&#39; для " & cl & " !", vbCritical + vbOKOnly
                  Cancel = True
                  Exit Sub
              End If
          Next
      End If
  Next
  End With
  With Worksheets("лист2")
  lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  For Each cl In .Range("B12841:b" & lRow).Cells
      If cl <> Empty And Not cl Like "*Резерв*" Then
          For i = 0 To 8
              If i <> 3 And cl.Offset(, i) = Empty Then
                  MsgBox "Не заполнена ячейка &#39;" & .Cells(10, cl.Offset(, i).Column).Text & "&#39; для " & cl & " !", vbCritical + vbOKOnly
                  Cancel = True
                  Exit Sub
              End If
          Next
      End If
  Next
End With
End Sub
Изменено: Sanja - 15.04.2025 12:38:05
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Всем доброго времени суток!
Изменено: Sanja - 15.04.2025 11:43:24
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Дело было не в бобине:). Одна не верная цифра и все сломалось. В общем, всем спасибо! Всё работает! :D  
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
В той интерпретации которую я прислал? 8-0  
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Цитата
написал:
Сообщение  #15  видели?
Да, но у меня почему-то он не отрабатывает, и в нем диапазон от 0 до 8, а у меня на других листах 9,10 столбцов проверить нужно (
Изменено: Egor87 - 28.02.2025 15:42:36
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
В общем намудрил так, в итоге лист1 отрабатывает, а лист2, нет :( . Знаю что по не знаю где-то накосячил, вопрос где? :evil:

Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
With Worksheets("лист1")
  lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  For Each cl In .Range("B12841:b" & lRow).Cells
      If cl <> Empty And Not cl Like "*Резерв*" Then
          For i = 0 To 8
              If i <> 3 And cl.Offset(, i) = Empty Then
                  MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
                  Cancel = True
                  Exit Sub
              End If
          Next
      End If
  Next
  End With
  With Worksheets("лист2")
  lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
  For Each cl In .Range("B12841:b" & lRow).Cells
      If cl <> Empty And Not cl Like "*Резерв*" Then
          For i = 0 To 8
              If i <> 3 And cl.Offset(, i) = Empty Then
                  MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
                  Cancel = True
                  Exit Sub
              End If
          Next
      End If
  Next
End With
End Sub
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Цитата
написал:
- откуда такой вывод?Я писал про ЭТОТ макрос, т.е. с таким названием ))Вообще в модуле книги не нужно юзать макросы, не относящиеся к событиям книги, кладите их в созданный стандартный модуль.

Изменено: Hugo  - 28.02.2025 15:03:52
"Этот макрос должен быть только один, в модуле книги".-вот из этих слов :). Но это уже не важно ;) , важно как подточить макрос под мой файл :( :).
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Т.е. если в модуле ЭтаКнига есть еще макросы их придется удалить. В эту строк: Private Const SHEETS_NAME = "Журнал эксплуатации, Эксплуатация журналов" -перечисляем все название листов по которым должен проходить макрос? Hugo-прав столбец начала ввода данных везде "B", а вот количество столбцов разное.
Помогите указать макросу конкретный "Лист" для исполнения., Прописать абсолютный путь.
 
Добрый день! Есть макрос который не дает сохранить если не заполнена одна из ячеек на листе сохранен в макросах книги. В книге несколько листов. Как сделать чтоб этот макрос работал на нескольких листах. Пробовал сохранить на разных листах, и изменить название листа в макросе, не работает, переименовать тоже не получается, или ошибку выдает или не работает

Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
With Worksheets("Журнал эксплуатации")
   lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
   For Each cl In .Range("B12841:b" & lRow).Cells
       If cl <> Empty And Not cl Like "*Резерв*" Then
           For i = 0 To 8
               If i <> 3 And cl.Offset(, i) = Empty Then
                   MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
                   Cancel = True
                   Exit Sub
               End If
           Next
       End If
   Next
End With
End Sub
Макрос активация формул
 
Доброго времени суток! Уважаемые форумчане, нужна помощь в написании макроса. Есть ряд ячеек в Excel книге которые ссылаются на другие книги Excel, смысл был в том что после определенных махинаций формулы автоматом обновлялись, но часть формул отрабатывает нормально, а в двух столбцах приходится тыкать F2 и Enter только тогда формула отрабатывает нормаль. Как слетать макросам эту переборку в определенных столбцах. допустим B и С.
Активация формул с помощью VBA
 
Всем добрый день!
Вопрос по теме, но предложенные выше варианты к сожалению не подходят.
В общем, есть столбец с формулами, в 2000 ячеек, формулы в них отображаются как текст, данные формулы ссылаются на внешние источники, которые меняются в конечной папке,  соответственно ни все файлы из перечня формул есть в папке, и при преобразовании этих формул из текста в активную формулу, появляется окно которое предлагает указать путь к прописанному в формуле файлу. Ctrl+H Заменить "=" на "=" не подходит т.к. вылетает окно с запросом пути, я сейчас это делаю через F2-Enter-esc, самый оптимальный способ, но муторно. Выше перечисленные макросы тоже не подходят. Как этот процесс автоматизировать макросом?
Изменено: Egor87 - 06.04.2024 21:40:10
Макрос для удаления условного форматирования по условию., Макрос для удаления условного форматирования при определенном название столбца.
 
Цитата
написал:
Sub MainMacro()
 With Worksheets("Лист1")
   ClearRg .Cells.Find("мин", , xlValues, xlWhole, SearchFormat:=False)
   ClearRg .Cells.Find("макс")
 End With
End Sub

Sub ClearRg(rg As Range)
 If rg Is Nothing Then Exit Sub
 rg.EntireColumn.FormatConditions.Delete
 rg.Resize(4, 1).ClearFormats' Эта строчка!
 'rg.Resize(4, 1).ClearContents
Добрый день!
Подходящий вариант, не много поколдовал с форматом ячеек в файле, всё работает как нужно. Спасибо большое! ;)  
Макрос для удаления условного форматирования по условию., Макрос для удаления условного форматирования при определенном название столбца.
 
Код
Sub MainMacro()
 With Worksheets("Ëèñò1")
   ClearRg .Cells.Find("ìèí", , xlValues, xlWhole, SearchFormat:=False)
   ClearRg .Cells.Find("ìàêñ")
 End With
End Sub

Sub ClearRg(rg As Range)
 If rg Is Nothing Then Exit Sub
 rg.EntireColumn.FormatConditions.Delete
 
End Sub
Всем доброго времени суток. Как прописать чтоб данный макрос после удаления условного формат ирония, делал формат ячеек общий? Попробовал стандартными способами, или ошибку выдаёт, или работает с выделеными ячейками.
Формула мин/макс, Формула мин/макс в диапазоне
 
Доброго времени суток! Нужна помощь. Есть таблица с данными, нужно найти мин/макс в определённых столбцах при условии что значения попадают в диапазон от 1 до 10 в столбце "А". Размер таблицы меняется по этому диапазон в формуле прописан больше чем размер таблицы(СРАЗУ ОГОВОРЮСЬ УМНЫЕ ТАБЛИЦЫ В ДАННОЙ СИТУАЦИИ НЕ ПОДХОДЯТ).Попробовал ряд вариантов, но безуспешно, в пределах таблицы все работает, а если указываю диапазон больше таблицы с данными, выдает "0,0"
Обязательное заполнение ячеек при условии
 
Всем доброго дня! Как сделать чтоб данный макрос:
1) Работал на каждом листе отдельно и не конфликтовал с другими макросами.
2) Гении VBA помогите пожалуйста.  :)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
With Worksheets("Микроучасток")
   lRow = .Cells(.Rows.Count, 3).End(xlUp).Row
   For Each cl In .Range("C4:C" & lRow).Cells
       If cl <> Empty And Not cl Like "*проживают*" Then
           For I = 1 To 8
               If cl.Offset(, I) = Empty Then
                   MsgBox "Не заполнена графа '" & .Cells(3, cl.Offset(, I).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
                   Exit Sub
               End If
           Next
       End If
   Next
End With
End Sub
Изменено: Egor87 - 19.10.2023 10:56:59
Макрос для удаления условного форматирования по условию., Макрос для удаления условного форматирования при определенном название столбца.
 
Цитата
написал:
скопируйте этот
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12      Sub   MainMacro()        With   Worksheets(  "Ëèñò1"  )          ClearRg .Cells.Find(  "ìèí"  , , xlValues, xlWhole, SearchFormat:=  False  )          ClearRg .Cells.Find(  "ìàêñ"  )        End   With    End   Sub       Sub   ClearRg(rg   As   Range)        If   rg   Is   Nothing   Then   Exit   Sub        rg.EntireColumn.FormatConditions.Delete        rg.Resize(4, 1).ClearContents    End   Sub   
 
в стандартный модуль. выполните MainMacro
Цитата
Клёво,работает, Спасибо, ! Осталось его внедрить в другой макрос внедрить чтоб все рабоьало как мне нужно.
Макрос для удаления условного форматирования по условию., Макрос для удаления условного форматирования при определенном название столбца.
 
Добрый день!
Нужна помощь в написании макроса, 2 варианта (подойдёт любой):
1) Чтоб он на листе с название допустим Лист1 находил столбцы с названиями "мин", "макс", и удалял в них условное форматирование.
2) Чтоб он на листе с название допустим Лист1 находил столбцы с названиями "мин", "макс", и удалял определенное количество ячеек (данных из них) , включая ячейки с названием столбцов(например E1:F4).
Подставление в формулу значения из ячейки выше
 
Всем добрый день!
Николай, подскажите как сделать чтоб в формулу(см. фаил) значение, в нашем случае 545, менялось на значение из ячейки в верхней строке расположенной над ячейкой с формулой и прописывалось именно числом, а не формулой ='C:\Users\ea_1\Desktop\Шаблоны для отчетов\[545 d.xls]Sheet1'!$D2, при условии что все что выделено красным может меняться.Этот фаил некий шаблон, и суть формулы при перемещении его в разные папки не меняется ,автоматом меняется путь к фаилу, и приходится в ручную прописывать имя фаила, а их бывает не 1 десяток.
Пробовал прописать через банальное равно, получилась ерунда  
Изменено: Egor87 - 26.06.2020 11:50:19
Страницы: 1
Наверх