if verschachtelung ( anfängerfrage )

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox
Bild

Betrifft: if verschachtelung ( anfängerfrage )
von: tim
Geschrieben am: 24.04.2015 09:18:14

Servus,
ich hab ein kleines Problem. Und zwar bereitet mir meine if Verschachtelung Kopfzerbrechen. Der code bezieht sich auf einen Button, der den Inhalt einer listbox in eine andere verschiebt, wenn er selektiert wurde. gleichzeitig sollen werte in excel verglichen werden und abgespeichert werden.
Zum Verständniss, die erste for schleife durchläuft die Liste und schaut welches item selektiert ist.
Wenn er das selektierte Item gefunden hat, dies ist die erste if Abfrage, dann soll er den Eintrag in eine andere listbox abspeichern. Dann hab ich eine excel tabelle, in der der selektierte Wert, mit Werten aus einer Spalte verglichen wird. Das ist die zweite Vorschleifen. Wenn er den selektierten Wert in der Excel Tabelle gefunden hat, dies ist die zweite if Abfrage, dann soll er einen Wert einer Zelle, in eine andere Zelle hinein kopieren.
Nun zum Problem, ich bekomme jedes mal die Fehlermeldungen, das mein unteres End if, kein if hat. Also "End if without block if". Kann aber an meinem Code wirklich nichts falsches erkennen.
Vielen Dank schonmal für eure Hilfe!

Dim i As Integer, j As Integer
     
With uncat_lb
    For i = 0 To .ListCount - 1
        If .Selected(i) Then dest_lb_1.AddItem .List(i)
            For j = 2 To Sheets("summary").Cells(Rows.Count, 5).End(xlUp).Row
                If Sheets("summary").Range("E" & j) = .Selected(i) Then
                Sheets("summary").Range("J" & j) = Sheets("summary").Range("H" & j)
                End If
            Next j
        End If
    Next i
     
    For i = .ListCount - 1 To 0 Step -1
        If .Selected(i) Then .RemoveItem (i)
    Next i
    
End With


Bild

Betrifft: AW: if verschachtelung ( anfängerfrage )
von: Daniel
Geschrieben am: 24.04.2015 09:45:49
Hi
Wenn du in der Zeile mit IF nach dem THEN weiter schreibst, entsteht ein einzeiliger If-Block, welcher sich nur in dieser Zeile abspielt und deswegen auch kein EndIf benötigt.
Diese Schreibweise ist nur dann sinnvoll, wenn nach dem Then nur ein einziger Befehl folgt und es keinen Else-Teil gibt.
Gruß Daniel

Bild

Betrifft: AW: if verschachtelung ( anfängerfrage )
von: tim
Geschrieben am: 24.04.2015 10:51:15
Alles klar, vielen Dank! Du hast mir sehr geholfen!

Bild

Betrifft: In deinem Fall hat Daniel recht, ...
von: Luc:-?
Geschrieben am: 24.04.2015 10:41:28
…Tim;
außerdem fehlt die Deklarierung von uncat_lb und dest_lb_1.
In einem 1zeiligen If…Then-Konstrukt können allerdings auch mehrere :-getrennte Befehle stehen, die aber alle nur ausgeführt wdn, wenn die vorstehende Bedingung erfüllt ist. Das wäre sogar mit einem 1zeilig notierbaren For…Next-Zyklus möglich, was hier aber wg des in ihm enthaltenen If…Then-Konstrukts nicht möglich ist.
Außerdem verlangen Nicht-MS-Adaptionen von VBA hierbei eine größere Präzision (uU mehr :), was auch in höheren Xl-Versionen (VB7-Compiler) der Fall sein kann.
Mit einem klassischen Aufbau einer solchen Befehlsfolge bist du also eher auf der sicheren Seite.
Gruß, Luc :-?

Besser informiert mit …

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Unterordner durchsuchen"