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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод текста в другой ячейке по условию - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод текста в другой ячейке по условию (Макросы/Sub)
Вывод текста в другой ячейке по условию
01eg10 Дата: Понедельник, 26.02.2018, 13:09 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Суть проблемы такова, что есть столбец с высотными отметками H. Из него в ячейку I1 определяем максимальную высотную отметку. А затем при нажатии кнопки запускается макрос, который должен искать в столбце H значение ячейки I1 и выводить в столбце A напротив (в той же строке) найденного значения текст "Z1 max" и в идеале закрашивать строку в красный цвет.
Помогите пожалуйста

[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng As Range, iVal As Variant 'объявляем 2 переменные
iVal = Sheets("Лист1").Range("I1") 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
Set Rng = Sheets("Лист1").Columns(8).Find(iVal, , xlFormulas, xlWhole) 'осуществляем поиск.
If Rng Is Nothing Then 'если ничего не нашли, то выводим сообщение
MsgBox "Значение " & iVal & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
Exit Sub
End If

???
End Sub
[/vba]


Сообщение отредактировал 01eg10 - Понедельник, 26.02.2018, 13:50
 
Ответить
СообщениеДобрый день!
Суть проблемы такова, что есть столбец с высотными отметками H. Из него в ячейку I1 определяем максимальную высотную отметку. А затем при нажатии кнопки запускается макрос, который должен искать в столбце H значение ячейки I1 и выводить в столбце A напротив (в той же строке) найденного значения текст "Z1 max" и в идеале закрашивать строку в красный цвет.
Помогите пожалуйста

[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng As Range, iVal As Variant 'объявляем 2 переменные
iVal = Sheets("Лист1").Range("I1") 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
Set Rng = Sheets("Лист1").Columns(8).Find(iVal, , xlFormulas, xlWhole) 'осуществляем поиск.
If Rng Is Nothing Then 'если ничего не нашли, то выводим сообщение
MsgBox "Значение " & iVal & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
Exit Sub
End If

???
End Sub
[/vba]

Автор - 01eg10
Дата добавления - 26.02.2018 в 13:09
01eg10 Дата: Понедельник, 26.02.2018, 13:11 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Вот файлик
К сообщению приложен файл: 9121472.xlsm(24.6 Kb)
 
Ответить
СообщениеВот файлик

Автор - 01eg10
Дата добавления - 26.02.2018 в 13:11
sboy Дата: Понедельник, 26.02.2018, 13:35 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2224
Репутация: 631 ±
Замечаний: 0% ±

Excel 2010
01eg10, Добрый день. Оформите код тэгами (кнопка #) на панели редактирования
и попутно вопрос, данные могут меняться после выполнения макроса?
 
Ответить
Сообщение01eg10, Добрый день. Оформите код тэгами (кнопка #) на панели редактирования
и попутно вопрос, данные могут меняться после выполнения макроса?

Автор - sboy
Дата добавления - 26.02.2018 в 13:35
01eg10 Дата: Понедельник, 26.02.2018, 13:53 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
sboy, Данные могут меняться в столбце с высотными отметками. Поэтому предполагается, что значение Z1 max должно затираться и вписываться в другую ячейку при смене данных
 
Ответить
Сообщениеsboy, Данные могут меняться в столбце с высотными отметками. Поэтому предполагается, что значение Z1 max должно затираться и вписываться в другую ячейку при смене данных

Автор - 01eg10
Дата добавления - 26.02.2018 в 13:53
китин Дата: Понедельник, 26.02.2018, 14:02 | Сообщение № 5
Группа: Модераторы
Ранг: Участник клуба
Сообщений: 5142
Репутация: 815 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
так? проверяйте
[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng1 As Long, iVals&, iVals2&, d1& 'объявляем 4 переменные
   d1 = Cells(Rows.Count, 8).End(xlUp).Row
   
   Set Vals1 = Sheets("Лист1").Columns(1).Find("Z1 max", , xlFormulas, xlWhole)
     iVals2 = Vals1.Row
   Range(Cells(iVals2, 1), Cells(iVals2, 10)).Interior.Pattern = xlNone
   Cells(iVals2, 1).Clear
   Range("H2:H" & d1).Interior.Color = 5296274
   iVal1 = Sheets("Лист1").Range("I1").Value 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
    Set Vals = Sheets("Лист1").Columns(8).Find(iVal1, , xlFormulas, xlWhole) 'осуществляем поиск.
    If Vals Is Nothing Then 'если ничего не нашли, то выводим сообщение
        MsgBox "Значение " & Rng1 & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
         Else
        iVals = Vals.Row
        Cells(iVals, 1).Value = "Z1 max"
         Range(Cells(iVals, 1), Cells(iVals, 10)).Interior.Color = 255
    End If
    
    
    
End Sub

     
[/vba]
К сообщению приложен файл: 01eg10.xlsm(20.9 Kb)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщениетак? проверяйте
[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng1 As Long, iVals&, iVals2&, d1& 'объявляем 4 переменные
   d1 = Cells(Rows.Count, 8).End(xlUp).Row
   
   Set Vals1 = Sheets("Лист1").Columns(1).Find("Z1 max", , xlFormulas, xlWhole)
     iVals2 = Vals1.Row
   Range(Cells(iVals2, 1), Cells(iVals2, 10)).Interior.Pattern = xlNone
   Cells(iVals2, 1).Clear
   Range("H2:H" & d1).Interior.Color = 5296274
   iVal1 = Sheets("Лист1").Range("I1").Value 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
    Set Vals = Sheets("Лист1").Columns(8).Find(iVal1, , xlFormulas, xlWhole) 'осуществляем поиск.
    If Vals Is Nothing Then 'если ничего не нашли, то выводим сообщение
        MsgBox "Значение " & Rng1 & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
         Else
        iVals = Vals.Row
        Cells(iVals, 1).Value = "Z1 max"
         Range(Cells(iVals, 1), Cells(iVals, 10)).Interior.Color = 255
    End If
    
    
    
End Sub

     
[/vba]

Автор - китин
Дата добавления - 26.02.2018 в 14:02
sboy Дата: Понедельник, 26.02.2018, 14:04 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2224
Репутация: 631 ±
Замечаний: 0% ±

Excel 2010
Красить предлагаю условным форматированием
[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng As Range, iVal As Variant  'объявляем 2 переменные
    Set r = Range("A:A").Find("Z1max")
        If Not r Is Nothing Then r = ""
    iVal = Sheets("Лист1").Range("I1") 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
    Set Rng = Sheets("Лист1").Columns(8).Find(iVal) 'осуществляем поиск.
        If Not Rng Is Nothing Then 'если ничего не нашли, то выводим сообщение
            Cells(Rng.Row, 1) = "Z1max"
            'Range(Cells(Rng.Row, 1), Rng).Interior.Color = vbRed
        Else
            MsgBox "Значение " & iVal & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
        End If
End Sub
[/vba]
К сообщению приложен файл: 3530636.xlsm(19.3 Kb)
 
Ответить
СообщениеКрасить предлагаю условным форматированием
[vba]
Код
Sub Кнопка1_Щелчок()
Dim Rng As Range, iVal As Variant  'объявляем 2 переменные
    Set r = Range("A:A").Find("Z1max")
        If Not r Is Nothing Then r = ""
    iVal = Sheets("Лист1").Range("I1") 'запоминает значение максимальной высотной отметки 1 значение из ячейка I1 Лист1
    Set Rng = Sheets("Лист1").Columns(8).Find(iVal) 'осуществляем поиск.
        If Not Rng Is Nothing Then 'если ничего не нашли, то выводим сообщение
            Cells(Rng.Row, 1) = "Z1max"
            'Range(Cells(Rng.Row, 1), Rng).Interior.Color = vbRed
        Else
            MsgBox "Значение " & iVal & " не найдено в столбце А на Лист1", vbExclamation, "Ошибка"
        End If
End Sub
[/vba]

Автор - sboy
Дата добавления - 26.02.2018 в 14:04
01eg10 Дата: Понедельник, 26.02.2018, 14:06 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Большое спасибо.
Все работает.
Буду вникать в код.
 
Ответить
СообщениеБольшое спасибо.
Все работает.
Буду вникать в код.

Автор - 01eg10
Дата добавления - 26.02.2018 в 14:06
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод текста в другой ячейке по условию (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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