Страницы: 1
RSS
msgbox по значениям ячеек
 
Здравствуйте!
обращаюсь как всегда  к специалистам!!!
здесь мне помогают все парни к которым я обратился !!!
просьба решить мою проблему с msgbox  
на самом деле первый раз этого касаюсь...
мне надо что бы msgbox  брал список из столбца что не равно нулю (что не равно "0" это список изделий )
а если все нули то он не появлялся

Спасибо большое всем!

файл прилагаю
по своему расположению значений

 
 
Пардон, не заметил данные в углу. :)

Тогда вопросы:
Все ли "ненулевые значения" должны появляться в этом msgbox, или по-очереди?
Всегда ли такое расположение данных (столбец, первая строка списка), есть ли в данных разрывы (когда и не 0, и не значение)?
Все равно, как это будет запускаться?
Изменено: Пытливый - 16.04.2015 23:04:43
Кому решение нужно - тот пример и рисует.
 
Отобразить в MsgBox ненулевые значения? Дальше что будете с этим списком делать?
 
Как-то так
Код
Sub LL()
For I = 1 To Cells(Rows.Count, 26).End(xlUp).Row
If Cells(I, 26) <> 0 Then MsgBox (Cells(I, 26))
Next I
End Sub



UPD или так, если хотите все сразу вывести (но строка может оказаться изрядной длины)
Код
Sub LL()
Dim S As String
For I = 1 To Cells(Rows.Count, 26).End(xlUp).Row
If Cells(I, 26) <> 0 Then S = S & ", " & Cells(I, 26)
Next I
MsgBox (S)
End Sub




Изменено: МВТ - 16.04.2015 23:09:25
 
Код
Sub Макрос1()
Dim LastRow As Long, Stroka As String
    LastRow = Cells(Rows.Count, 26).End(xlUp).Row
    For i = 3 To LastRow
        If Cells(i, 26) <> 0 Then
            If Stroka = "" Then
                Stroka = Cells(i, 26)
            Else
                Stroka = Stroka & Chr(10) & Cells(i, 26)
            End If
        End If
    Next
    MsgBox Stroka
End Sub
 
Пытливый,
все не нуливые значения должны появляться в списке
я нажимаю свой макрос и если не равно нулю они появляютя
список всегда одинаков
но если нули между строк все приходит без нулей в кучу
запускаться будет моим макросом
то что вы дадите я вставлю в свой
 
Юрий М,
дальше я добавляю кол-во что не хватает, оно переходит в ноль и не появляется  в msgbox
может косяк будет. пока не понимаю
дальше опять к вам )))
 
# #  4 и 5 не подходят?
 
Юрий М,
момент я попробую
для меня все не так быстро...
 
5 вариант попробовал все работает но надо если"0" то окно пустое не появляется
сейчас оно выскакивает всегда
Изменено: Иван Иванов - 17.04.2015 09:59:24
 
В msgbox много не выведете, если возможно что упрётесь в ограничения - я бы посоветовал делать форму с листбоксом.
 
Hugo,
Можете на моем примере показать как это выглядит?
msgbox я хотя бы видел
а об этом только слышу)))
 
Показать на примере не могу.
 
Вот с ЛистБоксом.
 
А может быть Вам КомбоБокс понравится (подойдёт) больше ). См. файл.
 
Или multiline текстбокс с прокруткой можно использовать.
На примере Юрия:
Код
Private Sub UserForm_Initialize()
Dim LastRow As Long, i As Long ' Stroka As String
    LastRow = Cells(Rows.Count, 26).End(xlUp).Row
    For i = 3 To LastRow
        If Cells(i, 26) <> 0 Then Me.ListBox1.AddItem Cells(i, 26): Me.TextBox1 = Me.TextBox1 & Cells(i, 26) & vbNewLine
    Next
End Sub

На форму добавить текстбокс, ему в  свойствах задать мультистрочность и прокрутку.
Изменено: Hugo - 17.04.2015 10:59:13
 
Игорь, я спрашивал автора - что дальше делать с данными? Ведь важно понимать, для чего делается выборка. Понятно, что MsgBox плохая идея для дальнейшей обработки, но ответ не добавил ясности )
 
Юрий М,
прошу прощения если не нормально объяснил
попробую еще раз
когда нажимаю кнопку своего макроса
msgbox  выдает значения которые появились в столбце Z3:Z44 (если нули то окно не появляется)
в этом столбце появляются наименования которые закончились (стоит формула )
если там нули  (Z3:Z44) то msgbox не появляется
дальше это никуда не идет
это для информации
увидел что закончилось , записал запомнил  добавил приход этих позиций  тд
 
Да сейчас читая понимаю что допусти ошибку не объяснив что этот список для информации
прошу прощения....
#5 то что надо
список идет столбцом (удобно смотреть), но MsgBox  просто выскакивает всегда, а он не должен появляться когда в Z3:Z44  все нули ,
а так все что я просил устраивает
 
Я не вижу Вашего макроса... Добавьте в него в самом начале вызов формы:
Код
UserForm1.Show
Ну и саму форму, разумеется, добавьте в проект.
 
Цитата
Иван Иванов написал: но MsgBox  просто выскакивает всегда, а он не должен появляться когда в Z3:Z44  все нули
Добавьте проверку на длину строки. Сами справитесь?
 
Юрий М, нет конечно)))
 
Код
Next
    If Stroka <> "" Then MsgBox Stroka
 
Код
SubМакрос1()Dim LastRow As Long, Stroka As String
    LastRow = Cells(Rows.Count, 26).End(xlUp).Row
    For i = 3 To LastRow
        If Cells(i, 26) <> 0 Then
            If Stroka = "" Then
                Stroka = Cells(i, 26)
            Else
                Stroka = Stroka & Chr(10) & Cells(i, 26)
            End If
        End If
    Next
    MsgBox Stroka
End Sub 
Юрий М
, что то не работает ничего. Можете указать куда подставить вот это
Next
   IfStroka <> ""ThenMsgBox Stroka
Изменено: Иван Иванов - 17.04.2015 13:09:43
 
Ну ведь я показал кусок кода, где нужно исправить... Было:
Код
Next
    MsgBox Stroka
End Sub
Нужно:
Код
Next
    If Stroka <> "" Then MsgBox Stroka
End Sub
P.S. Не нужно код раскрашивать - оформляйте его тегом.
 
Иван Иванов, не нужно разукрашивать код вручную. Кнопка для форматирования кода - <...>
Вернитесь и исправьте
 
Все работает спасибо!
Страницы: 1
Наверх