Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife mit Suchfunktion

Schleife mit Suchfunktion
07.01.2009 19:50:00
Marco
Hallo an alle,
wünsche hier erstmal allen ein gutes neues Jahr.
Habe folgenden VBA Code:

Private Sub CommandButton1_Click()
Dim a As Integer
Dim b As Integer
Cells(Range("A65536").End(xlUp).Row, 1).Select
For a = 1 To Cells(Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
If ActiveCell.Value = TextBox1.Value Then b = ActiveCell.Offset(0, 2).Value: GoTo weiter
ActiveCell.Offset(-1, 0).Select
Next a
weiter:
Cells(Range("A65536").End(xlUp).Offset(1, 0).Row, 1).Select
ActiveCell = TextBox1.Value
ActiveCell.Offset(0, 1).Value = TextBox2.Value + b
ActiveCell.Offset(0, 2).Value = TextBox3.Value
MsgBox b
End Sub


Dieser Code steht in einer UserForm.
Es soll die letzte gefüllte Zeile markiert werden, und wenn der Wert der Zelle mit dem Wert in der Textbox1 übereinstimmt, soll der Wert rechts daneben (Menge) in eine Variable (b) übernommen werden.
Mein Problem ist aber, daß die Variable b immer Wert 0 bekommt, obwohl es zur Übereinstimmung kommt.
Ich fülle durch die Userform immer die nächste freie Zeile und möchte dann durch die Schleife erreichen, daß von unten nach oben nach einem Wert gesucht wird, und bei der ersten Übereinstimmung die Menge in der Variablen gespeichert werden soll.
Kann mir da jemand helfen.
Grüsse
Marco

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife mit Suchfunktion
07.01.2009 20:46:00
Daniel
Hi
du solltest grundsätzlich nicht mit ActiveCell arbeiten.
lies mal das hier: http://www.online-excel.de/excel/singsel_vba.php?f=78
da wir nicht wissen, was in deinen Daten drinsteht, kann man auch nicht sagen, warum b den Wert 0 bekommt. Könnte ja sein, daß die entsprechende Zelle leer ist.
du solltest das Makro mal im einzelstep durchgehen und dir dabei die entsprechenden Zellwerte anschauen.
und noch ein tipp:
um eine For-Next-Schleife vorzeitig zu verlassen, braucht man auch nicht mit GOTO zu arbeiten, sondern kann den Befehl: EXIT FOR verwenden.
Gruß, Daniel
Anzeige
AW: Schleife mit Suchfunktion
07.01.2009 20:54:00
Marco
Hallo Daniel,
danke für deine Email,
ich hatte Einzelschritt schon probiert, die Zellen sind auch alle gefüllt.
habe jetz ne andere Lösung: mit Verweis gehts auch:
Da wird der letzte Wert genommen, was auch Ziel des Vorhabens war.
=VERWEIS(9;1/(A1:A65535=D2);B:B )
Vielen Dank und noch schönen Abend
Marco
Anzeige
AW: Schleife mit Suchfunktion
07.01.2009 20:54:42
Peter
Hallo Marco,
was soll denn bei For a = 1 To Cells(Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
herauskommen?
Deine For/Next Schleife wird komplett übersprungen, da der To-Wert nie etwas enthalten kann, denn er liegt immer hinter der letzten belegten Zelle in Spalte A = 1.
Gruß Peter
Anzeige
AW: Schleife mit Suchfunktion
07.01.2009 21:02:00
Peter
Hallo Marco,
versuch es einmal mit For a = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Die Selects solltest du ebenfalls rauswerfen - sie sind völlig unnötig
ganz auf die Schnelle so:

Private Sub CommandButton1_Click()
Dim a As Integer
Dim b As Integer
Cells(Range("A65536").End(xlUp).Row, 1).Select
For a = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If ActiveCell.Value = TextBox1.Value Then b = ActiveCell.Offset(0, 2).Value: Exit For
ActiveCell.Offset(-1, 0).Select
Next a
With Cells(Range("A65536").End(xlUp).Offset(1, 0).Row, 1)
.Value = TextBox1.Value
.Offset(0, 1).Value = TextBox2.Value + b
.Offset(0, 2).Value = TextBox3.Value
End With
MsgBox b
End Sub


Gruß Peter

Anzeige
AW: Schleife mit Suchfunktion
07.01.2009 21:23:52
Marco
Hallo Peter,
danke für den Tip.
Habe schon ne andere Lösung gefunden mit Sverweis. Da klappt es so, wie ich mir das vorstelle:
=VERWEIS(9;1/(A1:A65535=J1);B:B )
Grüsse
Marco
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige