Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1036to1040
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige