vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Jak prawdzić czy w multi-seleced ListBox były zaznaczenia?
VBA Excel

otwartyotwarty rozpoczął: alek.k postów: 7



napisał: alek.k
postów: 6


umieszczony:
22 października 2009
13:09

  
Jeeeeżu dziaaaała !!!!!
Sfurmułowanie "Then Exit For" - to jest to czego mi brakowało

Dzięki serdeczne
Pozdrawiam
napisał: Trebor
postów: 1209


umieszczony:
22 października 2009
08:40

  
Teraz jaśniej. Spróbuj tak:
Private Sub CommandButton1_Click()
Dim i As Integer
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then Exit For
Next i
If i <= ListBox1.ListCount - 1 Then
    MsgBox "Uważaj koleżko....."
        Else
            Unload Me
                End If
End Sub


Hej
napisał: alek.k
postów: 6


umieszczony:
21 października 2009
22:32

  
nie bardzo

W tym przykładzie procedura msg zostanie wykonana za kazdym razem gdy i bedzie true czyli jezeli w ListBoxie zaznaczone bedzie 6 wierszy to msg pokaże sie 6 razy

ja potrzebuję coś takiego
UserForm1 zawiera
1. listBox1 (multi) w którym jest 600 pozycji ciągniętych z arkusz2("a1:a600")
2. CommandButton1 uruchamiający tą przeklęta procedurę

Przypadek 1
uruchamiam makro wywołujące UserForm1
na listBox1 zaznaczam pozycję 238
klikam CB1 i Uf1 gaśnie a do Arkusz1("A1") wskakuje tekst "Uważaj koleżko bo w listBox1 jest coś zaznaczone".

Przypadek 2
uruchamiam makro wywołujące UserForm1
na listBox1 zaznaczam pozycję 156 i 424 i jeszcze 587
klikam CB1 i Uf1 gaśnie a do Arkusz1("A1") wskakuje tekst "Uważaj koleżko bo w listBox1 jest coś zaznaczone".

Przypadek 3
uruchamiam makro wywołujące UserForm1
na listBox1 nie zaznaczam nic
klikam CB1 i Uf1 gaśnie i nic sie nie dzieje

prosze pomóżcie bo chyba zwariuje a nigdzie nie moge znaleź nic co by mi pasowalo
p.s. działam w excelu2007
Pozdrawiam
napisał: Trebor
postów: 1209


umieszczony:
21 października 2009
18:56

  
To był tylko przykład jak sobie radzić. Kod poniżej powinien spełnić Twoje oczekiwania.
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
        MsgBox "Zaznaczony wiersz " & i + 1
            End If
Next i
End Sub


Hej
napisał: alek.k
postów: 6


umieszczony:
21 października 2009
14:56

edytowany:
21 października 2009
15:00

  
Niestety u mnie takie rozwiązanie nie zadziałało
Ten kod daje na mojej ListBox taki efekt że jak nie zaznaczę nic to pokazuje mi się Msg, jak zaznacze jedną pozycję z listBox to tez pokauje msg a jak zaznaczę więcej niż jedną pozycję na listbox to wywala komunikat o kolizji wydarzeń czy jakoś tak.

A chodziło mi o to żeby procedura pomiędzy Then i End IF wykonyana była tylko wtedy kiedy w ListBox będzie co najmniej jedno zaznaczenie.

Acha - próbowałem zimienić ten warunek z True an False ale wtedy procedura jest wykonywana zawsze niezależenie od zaznaczeń w List Box

Proszę o dalszą pomoc
napisał: markos97
postów: 114


umieszczony:
21 października 2009
13:04

  
Witam!
Zobacz tutaj:
http://www.mrexcel.com/forum/showthread.php?t=373667

If ListBox1.Selected(0) = True Then
msg1 = ListBox1.List(0)
End If



Z pozdrowieniami
napisał: alek.k
postów: 6


umieszczony:
21 października 2009
11:36

  
Witam
Mam UserForm z kilkoma ListBox multiselected
Chcę żeby program podejmował określone działa w zależności od tego czy zaznaczono cokolwiek na poszczególnych ListBoxach.

Typu IF w ListBox1 zaznaczono cokolwiek Then
jakaś procedura
End IF

Utknąłem bo nie potrafię napisać takiego warunku w "If" żeby sprawdził czy w ListBox1 coś zostało wogóle zaznaczone.


Mam nadzieje żewyraziłem sie wystarczająco jasno
Dzięki za pomoc
Pozdrawiam


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z