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

Вход

Регистрация

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

 

= Мир MS Excel/получение информации в зависимости от выбора в listbox'е - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » получение информации в зависимости от выбора в listbox'е (Макросы/Sub)
получение информации в зависимости от выбора в listbox'е
Asretyq Дата: Пятница, 04.10.2019, 14:15 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
в зависимости от выбранных значений в листбоксе должно выгружаться в ячейку информация
по строкам и столбцам может добавляться значения (то есть буква д, е и тд и цифры 4,5 и тд)
я к тому, что нужен цикл
с циклами дружу, но пока не понимаю как реализовать
в файле должно быть понятно
К сообщению приложен файл: _Microsoft_Exce.xlsm (22.1 Kb)
 
Ответить
СообщениеДобрый день!
в зависимости от выбранных значений в листбоксе должно выгружаться в ячейку информация
по строкам и столбцам может добавляться значения (то есть буква д, е и тд и цифры 4,5 и тд)
я к тому, что нужен цикл
с циклами дружу, но пока не понимаю как реализовать
в файле должно быть понятно

Автор - Asretyq
Дата добавления - 04.10.2019 в 14:15
Asretyq Дата: Пятница, 04.10.2019, 19:23 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
как ни крути, но не получается ((((
[vba]
Код
Private Sub CommandButton1_Click()
For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then Counter = Counter + 1
Next
vc = Range("A100").End(xlUp).Row / 3
uu = 1
tt = 3
For i = 1 To vc
Cells(uu, 20) = Cells(tt, 1)
For yy = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(yy) = True Then Cells(uu + yy, 20) = ListBox1.List(yy)
Next yy
tt = tt + 3
uu = Counter + 2 + uu
Next
End Sub
[/vba]
 
Ответить
Сообщениекак ни крути, но не получается ((((
[vba]
Код
Private Sub CommandButton1_Click()
For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) Then Counter = Counter + 1
Next
vc = Range("A100").End(xlUp).Row / 3
uu = 1
tt = 3
For i = 1 To vc
Cells(uu, 20) = Cells(tt, 1)
For yy = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(yy) = True Then Cells(uu + yy, 20) = ListBox1.List(yy)
Next yy
tt = tt + 3
uu = Counter + 2 + uu
Next
End Sub
[/vba]

Автор - Asretyq
Дата добавления - 04.10.2019 в 19:23
nilem Дата: Пятница, 04.10.2019, 21:55 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Asretyq, привет
попробуйте так:
[vba]
Код
Private Sub CommandButton1_Click()
Dim i&, j&, rw&

rw = 1
With Me.ListBox1
    For j = 3 To Cells(Rows.Count, 1).End(xlUp).Row Step 3
        Cells(rw, 20) = Cells(j, 1): rw = rw + 1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Cells(rw, 20) = .List(i)
                Cells(rw, 21) = Cells(j, i + 2)
                Cells(rw, 22) = Cells(j + 1, i + 2)
                rw = rw + 1
            End If
        Next i
        rw = rw + 1
    Next j
End With
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеAsretyq, привет
попробуйте так:
[vba]
Код
Private Sub CommandButton1_Click()
Dim i&, j&, rw&

rw = 1
With Me.ListBox1
    For j = 3 To Cells(Rows.Count, 1).End(xlUp).Row Step 3
        Cells(rw, 20) = Cells(j, 1): rw = rw + 1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                Cells(rw, 20) = .List(i)
                Cells(rw, 21) = Cells(j, i + 2)
                Cells(rw, 22) = Cells(j + 1, i + 2)
                rw = rw + 1
            End If
        Next i
        rw = rw + 1
    Next j
End With
End Sub
[/vba]

Автор - nilem
Дата добавления - 04.10.2019 в 21:55
Asretyq Дата: Пятница, 04.10.2019, 22:11 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem,

ааааааааа
я вот только закончил))))
но интересно на ваш код глянуть

[vba]
Код

vc = Range("A100").End(xlUp).Row / 3
pp = 1

Range("A1").Select

For gg = 1 To vc
    ActiveCell.End(xlDown).Select
    Cells(pp, 20) = ActiveCell
    For yy = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(yy) = True Then
            pp = pp + 1
            Cells(pp, 20) = ActiveCell.Offset(ActiveCell.Row - ActiveCell.Row * 2 + 1, yy + 1).Value
            Cells(pp, 21) = ActiveCell.Offset(0, yy + 1).Value
            Cells(pp, 22) = ActiveCell.Offset(1, yy + 1).Value
        End If
    Next yy
    pp = vc + pp - 1
Next gg
[/vba]
 
Ответить
Сообщениеnilem,

ааааааааа
я вот только закончил))))
но интересно на ваш код глянуть

[vba]
Код

vc = Range("A100").End(xlUp).Row / 3
pp = 1

Range("A1").Select

For gg = 1 To vc
    ActiveCell.End(xlDown).Select
    Cells(pp, 20) = ActiveCell
    For yy = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(yy) = True Then
            pp = pp + 1
            Cells(pp, 20) = ActiveCell.Offset(ActiveCell.Row - ActiveCell.Row * 2 + 1, yy + 1).Value
            Cells(pp, 21) = ActiveCell.Offset(0, yy + 1).Value
            Cells(pp, 22) = ActiveCell.Offset(1, yy + 1).Value
        End If
    Next yy
    pp = vc + pp - 1
Next gg
[/vba]

Автор - Asretyq
Дата добавления - 04.10.2019 в 22:11
Asretyq Дата: Пятница, 04.10.2019, 22:25 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
объясните не опытному

для чего нужен знак "&"

[vba]
Код
Dim i&, j&, rw&
[/vba]

и для чего нужен знак ":"

[vba]
Код
Cells(rw, 20) = Cells(j, 1): rw = rw + 1
[/vba]

есть догадки, но это не точно :)
 
Ответить
Сообщениеобъясните не опытному

для чего нужен знак "&"

[vba]
Код
Dim i&, j&, rw&
[/vba]

и для чего нужен знак ":"

[vba]
Код
Cells(rw, 20) = Cells(j, 1): rw = rw + 1
[/vba]

есть догадки, но это не точно :)

Автор - Asretyq
Дата добавления - 04.10.2019 в 22:25
Asretyq Дата: Пятница, 04.10.2019, 22:36 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 200
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem, меня только осенило, что код идентичен, только написан мною немного кривовато
 
Ответить
Сообщениеnilem, меня только осенило, что код идентичен, только написан мною немного кривовато

Автор - Asretyq
Дата добавления - 04.10.2019 в 22:36
nilem Дата: Суббота, 05.10.2019, 08:13 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
[vba]
Код
Dim i&, j&, rw&
[/vba]
то же что и
[vba]
Код
Dim i As Long, j As Long, rw As Long
[/vba]
и для чего нужен знак ":" - несколько строк кода можно записать в одной строке


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение[vba]
Код
Dim i&, j&, rw&
[/vba]
то же что и
[vba]
Код
Dim i As Long, j As Long, rw As Long
[/vba]
и для чего нужен знак ":" - несколько строк кода можно записать в одной строке

Автор - nilem
Дата добавления - 05.10.2019 в 08:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » получение информации в зависимости от выбора в listbox'е (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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