Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос поиска не заполненных ячеек - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Макрос поиска не заполненных ячеек
SEA Дата: Пятница, 23.05.2025, 21:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
[vba]
Код
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next: res = ActiveCell.Validation.Type
Dim cl As Range
With Worksheets("Лист3")
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For Each cl In .Range("B4989:b" & lRow).Cells
If cl <> Empty And Not cl Like "*Резерв*" Then
For i = 0 To 12
If i <> 13 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("C8327:C" & lRow).Cells
If cl <> Empty And Not cl Like "*Резерв*" Then
For i = 0 To 8
If i <> 8 And cl.Offset(, i) = Empty Then
MsgBox "Журнал поверки,не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
.Cells(10, cl.Offset(, i).Column).Select
Cancel = True
End If
Next
End If
Next
End With
With Worksheets("Лист3")
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
.Cells(10, cl.Offset(, i).Column).Select
Cancel = True
Exit Sub
End If
Next
End If
Next
End With

End Sub
[/vba]

Форумчане, всем доброго дня! Есть такой макрос, помогите прописать в него команду, чтоб он перед или после [vba]
Код
MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
[/vba] перекидывал на ячейку которую нужно заполнить. И второй момент, не могу понять почему макрос не отрабатывет первую часть макроса, начиная с "Лита2" работает нормально.
 
Ответить
Сообщение[vba]
Код
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next: res = ActiveCell.Validation.Type
Dim cl As Range
With Worksheets("Лист3")
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row
For Each cl In .Range("B4989:b" & lRow).Cells
If cl <> Empty And Not cl Like "*Резерв*" Then
For i = 0 To 12
If i <> 13 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("C8327:C" & lRow).Cells
If cl <> Empty And Not cl Like "*Резерв*" Then
For i = 0 To 8
If i <> 8 And cl.Offset(, i) = Empty Then
MsgBox "Журнал поверки,не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
.Cells(10, cl.Offset(, i).Column).Select
Cancel = True
End If
Next
End If
Next
End With
With Worksheets("Лист3")
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
.Cells(10, cl.Offset(, i).Column).Select
Cancel = True
Exit Sub
End If
Next
End If
Next
End With

End Sub
[/vba]

Форумчане, всем доброго дня! Есть такой макрос, помогите прописать в него команду, чтоб он перед или после [vba]
Код
MsgBox "Не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
[/vba] перекидывал на ячейку которую нужно заполнить. И второй момент, не могу понять почему макрос не отрабатывет первую часть макроса, начиная с "Лита2" работает нормально.

Автор - SEA
Дата добавления - 23.05.2025 в 21:01
MikeVol Дата: Суббота, 24.05.2025, 11:46 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 431
Репутация: 104 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
SEA, Было бы не плохо увидеть ваш файл пример с данными (замените ваши данные не чувствительными данными). Чтот-то не охота всем будет делать файл для теста кода.


Ученик.
Одесса - Украина
 
Ответить
СообщениеSEA, Было бы не плохо увидеть ваш файл пример с данными (замените ваши данные не чувствительными данными). Чтот-то не охота всем будет делать файл для теста кода.

Автор - MikeVol
Дата добавления - 24.05.2025 в 11:46
SEA Дата: Понедельник, 26.05.2025, 12:29 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
MikeVol, вложил файл. Если в А2 ввести любое значение и попытаться сохранить, то появится окно с у уведомлением что не заполонена ячейка в следующем столбце.
К сообщению приложен файл: list_microsoft_excel_3.7z (16.1 Kb)


Сообщение отредактировал SEA - Понедельник, 26.05.2025, 15:46
 
Ответить
СообщениеMikeVol, вложил файл. Если в А2 ввести любое значение и попытаться сохранить, то появится окно с у уведомлением что не заполонена ячейка в следующем столбце.

Автор - SEA
Дата добавления - 26.05.2025 в 12:29
MikeVol Дата: Понедельник, 26.05.2025, 14:28 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 431
Репутация: 104 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
SEA, Очень плохой файл пример от вас! А где же условие
If cl <> Empty And Not cl Like "*Резерв*" Then
прописанное в коде. Да и сама логика не понятна если вы хотите
перекидывал на ячейку которую нужно заполнить
а в сообщение
MsgBox "Журнал поверки,не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
вы выводите совсем другую ячейку так-же хоите перепрыгнуть на неё. Всё очень сложно и непонятно.


Ученик.
Одесса - Украина
 
Ответить
СообщениеSEA, Очень плохой файл пример от вас! А где же условие
If cl <> Empty And Not cl Like "*Резерв*" Then
прописанное в коде. Да и сама логика не понятна если вы хотите
перекидывал на ячейку которую нужно заполнить
а в сообщение
MsgBox "Журнал поверки,не заполнена ячейка '" & .Cells(10, cl.Offset(, i).Column).Text & "' для " & cl & " !", vbCritical + vbOKOnly
вы выводите совсем другую ячейку так-же хоите перепрыгнуть на неё. Всё очень сложно и непонятно.

Автор - MikeVol
Дата добавления - 26.05.2025 в 14:28
SEA Дата: Понедельник, 26.05.2025, 15:40 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
MikeVol, Не удивительно, файл то не рабочий выложил, перезакрепил :D. Закрепил рабочий. Попробую еще раз более понятливо описать: Есть таблица с названием столбцов а, б, в, г....., если в А2 ввести любое значение и попробовать сохранить, то появляется сообщение что нужно заполнить ячейку в столбце, б, в, г.....Так вот, нужно чтобы не просто сообщение появлялось, а экран прокручивался и происходило выделение не заполненной ячейки. Не важно до или после сообщения.


Сообщение отредактировал SEA - Понедельник, 26.05.2025, 15:46
 
Ответить
СообщениеMikeVol, Не удивительно, файл то не рабочий выложил, перезакрепил :D. Закрепил рабочий. Попробую еще раз более понятливо описать: Есть таблица с названием столбцов а, б, в, г....., если в А2 ввести любое значение и попробовать сохранить, то появляется сообщение что нужно заполнить ячейку в столбце, б, в, г.....Так вот, нужно чтобы не просто сообщение появлялось, а экран прокручивался и происходило выделение не заполненной ячейки. Не важно до или после сообщения.

Автор - SEA
Дата добавления - 26.05.2025 в 15:40
MikeVol Дата: Понедельник, 26.05.2025, 16:06 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 431
Репутация: 104 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
SEA, Или лыжи не едут или я ... Вы внимательно читает что вам пишут? Перечитайте мой пост #4. Где это всё в файле примере?


Ученик.
Одесса - Украина
 
Ответить
СообщениеSEA, Или лыжи не едут или я ... Вы внимательно читает что вам пишут? Перечитайте мой пост #4. Где это всё в файле примере?

Автор - MikeVol
Дата добавления - 26.05.2025 в 16:06
cmivadwot Дата: Понедельник, 26.05.2025, 23:39 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 604
Репутация: 115 ±
Замечаний: 0% ±

365
SEA, Добрый вечер. Как вариант..
К сообщению приложен файл: list_microsoft_excel_3.xlsm (70.0 Kb)
 
Ответить
СообщениеSEA, Добрый вечер. Как вариант..

Автор - cmivadwot
Дата добавления - 26.05.2025 в 23:39
SEA Дата: Вторник, 27.05.2025, 10:29 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
cmivadwot, dfg: Огромное спасибо! Практически то что надо, даже значительно уменьшили мой макрос hands ;), но почему то, если заполнил допустим 70-ю строку, потом прокрутил лист до к примеру первой ячейки и сохраняешь, экран не фиксируется на незаполненной ячейке, а указывает на нее и возвращается на позицию на которой экран был перед сохранением, приходится скролить в ручную до указанной ячейки. И еще, можно чтоб в адресе Msg было написано название столбца из шапки таблицы, а не название столбцов Excel? Заранее благодарю :D
 
Ответить
Сообщениеcmivadwot, dfg: Огромное спасибо! Практически то что надо, даже значительно уменьшили мой макрос hands ;), но почему то, если заполнил допустим 70-ю строку, потом прокрутил лист до к примеру первой ячейки и сохраняешь, экран не фиксируется на незаполненной ячейке, а указывает на нее и возвращается на позицию на которой экран был перед сохранением, приходится скролить в ручную до указанной ячейки. И еще, можно чтоб в адресе Msg было написано название столбца из шапки таблицы, а не название столбцов Excel? Заранее благодарю :D

Автор - SEA
Дата добавления - 27.05.2025 в 10:29
SEA Дата: Вторник, 27.05.2025, 10:33 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
MikeVol, Посмотрите файл который закрепил cmivadwot. В нем практически реализован мой вопрос.
 
Ответить
СообщениеMikeVol, Посмотрите файл который закрепил cmivadwot. В нем практически реализован мой вопрос.

Автор - SEA
Дата добавления - 27.05.2025 в 10:33
MikeVol Дата: Вторник, 27.05.2025, 11:46 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 431
Репутация: 104 ±
Замечаний: 0% ±

MSO LTSC 2021 EN
SEA, Для себя я решил ваш вопрос. Мне интересно, где вот это условие на листах которое вы прописали у себя в коде [vba]
Код
Like "*Резерв*" Then
[/vba] и почему у вас в коде прописана жостко 10-ая строка [vba]
Код
.Cells(10,
[/vba], в сообщениях и активация (.Select)? Вот что мне требовалось узнать у вас. Ну да и ладно, решился ваш вопрос и то хорошо. Удачи.


Ученик.
Одесса - Украина
 
Ответить
СообщениеSEA, Для себя я решил ваш вопрос. Мне интересно, где вот это условие на листах которое вы прописали у себя в коде [vba]
Код
Like "*Резерв*" Then
[/vba] и почему у вас в коде прописана жостко 10-ая строка [vba]
Код
.Cells(10,
[/vba], в сообщениях и активация (.Select)? Вот что мне требовалось узнать у вас. Ну да и ладно, решился ваш вопрос и то хорошо. Удачи.

Автор - MikeVol
Дата добавления - 27.05.2025 в 11:46
SEA Дата: Вторник, 27.05.2025, 18:02 | Сообщение № 11
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

2016
MikeVol, «Like» даже не обратил на нее внимание в своем коде, первоначально собирал его по сусекам, видимо строку эту и скопировал, но рабол и ладно :D. "Cells(10,"- номер строки в которой находится название таблицы.
 
Ответить
СообщениеMikeVol, «Like» даже не обратил на нее внимание в своем коде, первоначально собирал его по сусекам, видимо строку эту и скопировал, но рабол и ладно :D. "Cells(10,"- номер строки в которой находится название таблицы.

Автор - SEA
Дата добавления - 27.05.2025 в 18:02
cmivadwot Дата: Вторник, 27.05.2025, 19:17 | Сообщение № 12
Группа: Проверенные
Ранг: Ветеран
Сообщений: 604
Репутация: 115 ±
Замечаний: 0% ±

365
SEA, так?
К сообщению приложен файл: list_microsoft_excel_4.xlsm (71.2 Kb)
 
Ответить
СообщениеSEA, так?

Автор - cmivadwot
Дата добавления - 27.05.2025 в 19:17
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!