PDA

Vollständige Version anzeigen : Probleme mit der Funktion einer Schleife (Loop)


vba_newbie
20.04.2009, 13:27
Hallo zusammen,

ich versuche mich an einem Tool, bei dem mit dem Öffnen der Excel-Datei ein Fenster mit 6 Eingabefeldern erscheint. Wird in eines dieser Felder ein Wert eingetragen, so soll dieser Wert in die Zell A1 eines Tabellenblattes eingetragen werden. (Für jedes Eingabefeld möchte ich später ein Tabellenblatt verwenden.)

Bis hierhin funktioniert auch alles.

Dann möchte ich den Wert A1 mit allen andern Werten der Spalte A vergleichen. Stimmt ein Wert mit A1 überein, so soll in einer Userform im Ausgabefeld (so habe ich das Textfeld genannt) der Inhalt der entsprechenden Zeile B ausgegeben werden.

Bsp.

1 A
2 B
3 C
steht jetzt in zelle A1 der Wert '2' so soll ein 'B' ausgegeben werden.


Mit folgendem Sub funktioniert das auch:

Private Sub UserForm_Activate()

ActiveWorkbook.Worksheets("CoPTI").Range("A3").Select

If Selection.Value = ActiveWorkbook.Worksheets("CoPTI").Range("A1") Then

usrAusgabe.Ausgabefeld.Value = ActiveCell.Offset(0, 1)

Else: ActiveCell.Offset(1, 0).Select

End If

End Sub


Dafür müsste ich nur den Teil von 'if' bis 'end if' mit copy/paste wiederholen. Das kann aber unnötig groß werden, da ich mehr als die drei Beispielzellen durchlaufen möchte. Habe es mit loop while/until versucht, aber das habe ich nicht hinbekommen.

Kann mir jemand sagen, wie ich das als Schleife so programmiere, dass der Abgleich mit A1 so lange läuft, bis entweder eine Übereinstimmung gefunden wird (wobei dann der entsprechende Wert der B-Spalte ausgegeben wird) oder bis in eine leere A-Zelle gesprungen wird (dann evtl. eine Ausgabe "Keine Übereinstimmung gefunden").

Vielen Dank schonmal alleine für die Mühe des Lesens und für jede Hilfe.

Gruß,

Florian

jinx
20.04.2009, 13:32
Moin, Florain,

wie wäre es denn einfach mit der Funktion SVerweis oder in VBA VLookUp? ;) Alternativ: die Find-Methode. Von einer Schleife würde ich abraten...