powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна помощь в макросе
25 сообщений из 47, страница 1 из 2
Нужна помощь в макросе
    #37209553
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выложил файл
нужна помощь, суть следующая:
1) макрос ищет в примечаниях инфо из строки 2 "Информация"
2) если такие ячейки находятся, то дается следующее сообщение: 1-я ячейка стобца и значение ячейки, где нашли данные
Сейчас приходится делать руками и смотреть через поиск
Должно получиться:
Проба 516
Разворот 902

Надеюсь на помощь, и надеюсь понятно пояснил
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211242
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
смотрю пока никто не помогает, хотя прокомментируйте
реально так или нет
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211270
Papadopulos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это реально и несложно сделать.
Обращение к ячейке: Sheets("Наименование листа").Cells(номер строки, номер столбца)
Вывод сообщения: MsgBox "Текст сообщения"

А что конкретно ты хочешь, я так до конца и не догнал :)
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211278
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Papadopulos,

пояснить уже очень хочется делать макросом, а не руками
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211294
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создай модуль. Запихни в него функцию:

Public Function GetComment(from As Range) As String
On Error GoTo ErrorHandler
GetComment = from.Comment.Text
Exit Function
ErrorHandler:
Err.Clear
GetComment = ""
End Function
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211299
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй функцию (для вывода комментария на лист и) поиска соотв. значения через ГПР()
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37211346
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
я не силен в макросе и формулах, можно поподробнее?
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37212213
Papadopulos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411Papadopulos,

пояснить уже очень хочется делать макросом, а не руками
Нажми кнопку "Запись макроса" в меню "Вид", группа "Макросы" (для E2007). Затем делай руками, то что ты обычно делаешь. Потом нажми кнопку "Остановить запись" и вот у тебя есть готовый макрос.
А вот чтобы его улучшить, все же придется немного VBA изучить
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37215959
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я так понял
помощи не ждать =(
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216092
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411я так понял
помощи не ждать =(

Объясни на пальцах, что ты хочешь сделать???
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216419
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216445
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
суть следующая:

есть таблица
1) в ней 1-я строка - шапка данных, напримен фрукт / овощ
2) 2-я строка - тоже шапка - яблоко / редис
3) после этой шапки идет таблица с 3-й строки, в которой идут данные сумм, в ячейке сумм стоит примечание товара
4) нужен скрипт, который бы показывал инфо, исходя из следующих данных
проверка всей страницы но по столбцам, т.е. проверка идет по стобцу 2, затем 3 и т.д.
если в стобце есть совпадение, значения из строки 2 с примечанием, то выдается сообщение след вида
значение первой строки и значение ячейки из стобца, в которой совпали данные

в примечании может быть много текста, но если встречается значение из строки 2, попадает в сообщение

выложил файл
в Сообщение должно выдать следующее:
фрукт - 1500
фрукт - 1231
овощ - 681
овощ - 599
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216538
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub OvoschiFrukti()

    Dim i As Integer, j As Integer
    Dim msg As String, sHeader As String
    
    With Sheet1

        For i =  2  To .Range("A2").End(xlToRight).Column

            ' Получаем название овоща/фрукта.
            sHeader = .Cells( 2 , i)

            For j =  3  To .Cells( 3 , i).End(xlDown).Row
                On Error Resume Next 'Если нет каментов
                If .Cells(j, i).Comment.Text = sHeader Then
                    msg = msg & .Cells( 1 , i) & " - " & .Cells(j, i) & vbNewLine
                End If
                On Error GoTo  0 
            Next

        Next

    End With
    
    MsgBox msg

End Sub
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216711
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что-то не получается
сможете вставить в книгу скрипт?
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216773
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411,

Там я сделал ссылку на Sheet1 - это программное имя листа "Лист1". У меня просто офис английский. Вместо Sheeе1 поставь Лист1 .
Можно и без программного имени с условием, что активным листом будет лист с овощами.

Овощи + Фрукты
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub OvoschiFrukti()

    Dim i As Integer, j As Integer
    Dim msg As String, sHeader As String
    
        For i =  2  To Range("A2").End(xlToRight).Column

            ' Получаем название овоща/фрукта.
            sHeader = Cells( 2 , i)

            For j =  3  To Cells( 3 , i).End(xlDown).Row
                On Error Resume Next 'Если нет каментов
                If Cells(j, i).Comment.Text = sHeader Then
                    msg = msg & Cells( 1 , i) & " - " & Cells(j, i) & vbNewLine
                End If
                On Error GoTo  0 
            Next

        Next
    
    MsgBox msg

End Sub
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216830
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

Всё поправил! Работает! Дело в том, что в каментах может быть не одно значение, а несколько, поэтому задействовал оператор Like. :)

Овощи/Фрукты
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub OvoschiFrukti()

    Dim i As Integer, j As Integer
    Dim msg As String, sHeader As String
    
    For i =  2  To Range("A2").End(xlToRight).Column

        ' Получаем название овоща/фрукта.

        sHeader = Cells( 2 , i)

        For j =  3  To Cells( 3 , i).End(xlDown).Row

            On Error Resume Next
            If Cells(j, i).Comment.Text Like "*" & sHeader & "*" Then
                msg = msg & Cells( 1 , i) & " - " & Cells(j, i) & vbNewLine
            End If

            On Error GoTo  0 

        Next

    Next

    MsgBox msg

End Sub
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216833
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

супер увидел, тока один нюанс
данный скрипт не вытащил значения
фрукт - 1231
овощ - 599

-----------

из файла,
фрукт - 1231 его примечание:
яблоко
ананас

из файла, т.к
овощ - 599 его примечание:
картофель
редис

-----------

т.е. если другие значения есть, он не понимает
реально сделать, чтобы вытащил?
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216835
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411,

Вот макрос в твоём файле.
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216856
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

спасибо
что нужно
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216982
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

вопрос возник
если ячейки для поиска смещаются
как изменить?
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37216987
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
например так
файл приложил
что в макросе надо изменять
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37217730
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411например так
файл приложил
что в макросе надо изменять

После недолгих мучений пишу тебе универсальны код. Важно условие - перед выполнением выделить диапазон с данными.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
Attribute VB_Name = "Module1"
Option Explicit

Sub OvoschiFrukti()

    Dim rng As Range
    Dim iRowGroup As Integer, iRowSpec As Integer
    Dim iColGroup As Integer, iColSpec As Integer
    Dim i As Integer, j As Integer
    Dim msg As String, sHeader As String
    
    If TypeName(Selection) <> "Range" Then
        MsgBox "Выделите ячейки!", vbCritical, "Ошибка"
        Exit Sub
    End If
    
    Set rng = Selection
    
    With rng.Columns( 1 ).Find(What:="Группа")
        iRowGroup = .Row
        iColGroup = .Column
    End With
    
    With rng.Columns( 1 ).Find(What:="Специфика")
        iRowSpec = .Row
        iColSpec = .Column
    End With
    
    Debug.Print iRowGroup, iColGroup, iRowSpec, iColSpec
    
    For i = iColSpec +  1  To Cells(iRowSpec, iColSpec).End(xlToRight).Column
        
        ' Получаем название фрукта/овоща.
        sHeader = Cells(iRowSpec, i)
        
        For j = iRowSpec +  1  To Cells(iRowSpec, i).End(xlDown).Row
            On Error Resume Next
            If Cells(j, i).Comment.Text Like "*" & sHeader & "*" Then
                msg = msg & Cells(iRowGroup, i) & " - " & Cells(j, i) & vbNewLine
            End If
            On Error GoTo  0 
        Next
    Next

    MsgBox msg

End Sub
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37218144
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

если не сложно вставь пожалуйста в файл
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37218181
NullUzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гость110411NullUzer,

если не сложно вставь пожалуйста в файл
Но проблемо!
...
Рейтинг: 0 / 0
Нужна помощь в макросе
    #37218807
гость110411
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NullUzer,

вот блин, всё сразу и не учтешь
если у ячейки нет значения и коммента, то не работает
файл приложил
...
Рейтинг: 0 / 0
25 сообщений из 47, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Нужна помощь в макросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]