Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Findmethode

Findmethode
20.02.2007 12:23:00
Christian
Hallo Leute,
Ich hab da mal wieder eine Frage. Ich bediene eine Tabelle mittels einer UserForm. Diese UF soll etwas aus der Tabelle nach bestimmten (mehreren) Kriterien heraussuchen und die gesammte Reihe ausschneiden.
Warum funktioniert das nicht ? bzw. wie kann ich sicherstellen, dass alle Kriterien beachtet werden ?
...
KuponNummer_von = TextBox13.Value
Art_des_WP = ComboBox1.Value
Buchungsbelegnummer = TextBox7.Value
...
Set gefunden = Worksheets("Bogentresor").Range("H11:H769").Find(Art_des_WP)
Set gefunden = Worksheets("Bogentresor").Range("J11:J769").Find(Buchungsbelegnummer)
Set gefunden = Worksheets("Bogentresor").Range("G11:G769").Find(KuponNummer_von)
If gefunden Is Nothing Then MsgBox ("Bestand nicht gefunden !"): TextBox7.SetFocus: Exit Sub
gefunden.EntireRow.Cut

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

Betreff
Datum
Anwender
Anzeige
AW: Findmethode
20.02.2007 12:38:10
Rudi
Hallo,
du kannst nur nach einem suchen. Wenn gefunden, dann die übrigen Spalten mit den Kriterien vergleichen. Wenn's passt kopieren, sonst nächste suchen.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
AW: Findmethode
20.02.2007 12:38:33
Peter
Hallo Christian,
eine Möglichkeit zu prüfen, ob alle Kriterien gefunden wurden ist:
Dim iGefunden As Integer
iGefunden = 0
Set gefunden = Worksheets("Bogentresor").Range("H11:H769").Find(Art_des_WP)
If Not gefunden Is Nothing Then iGefunden = iGefunden + 1
Set gefunden = Worksheets("Bogentresor").Range("J11:J769").Find(Buchungsbelegnummer)
If Not gefunden Is Nothing Then iGefunden = iGefunden + 1
Set gefunden = Worksheets("Bogentresor").Range("G11:G769").Find(KuponNummer_von)
If Not gefunden Is Nothing Then iGefunden = iGefunden + 1
if iGefunden = 3 Then
gefunden.EntireRow.Cut
Else
Exi Sub
Ob dein Cut so funktioniert, weiß ich nicht.
Gruß Peter
Anzeige
AW: Findmethode
20.02.2007 15:24:06
Peter
Hallo Christian,
das kann ja nur funktionieren, wenn alle drei Kriterien auf die gleiche Zeile zutreffen - meine ich.
Deshalb so:
Option Explicit
Public

Sub Test()
Dim iGefunden            As Integer
Dim Art_des_WP           As String
Dim Buchungsbelegnummer  As Long
Dim KuponNummer_von      As Integer
Dim gefunden             As Range
Dim lZeile               As Long
Art_des_WP = "ASDF"
Buchungsbelegnummer = 4812
KuponNummer_von = 12
iGefunden = 0
Set gefunden = Worksheets("Bogentresor").Range("H11:H769").Find(Art_des_WP)
If Not gefunden Is Nothing Then
lZeile = gefunden.Row
iGefunden = iGefunden + 1
End If
Set gefunden = Worksheets("Bogentresor").Range("J11:J769").Find(Buchungsbelegnummer)
If Not gefunden Is Nothing And _
gefunden.Row = lZeile Then
iGefunden = iGefunden + 1
End If
Set gefunden = Worksheets("Bogentresor").Range("G11:G769").Find(KuponNummer_von)
If Not gefunden Is Nothing And _
gefunden.Row = lZeile Then
iGefunden = iGefunden + 1
End If
If iGefunden = 3 Then
Rows(lZeile).Cut
Else
Exit Sub
End If
End Sub

Gruß Peter
Anzeige
AW: Findmethode
27.02.2007 11:41:00
Christian
Hallo Peter,
entschuldige, dass ich mich erst jetzt melde. Habe fast alles ausprobiert, funktioniert aber leider immernoch nicht. Wenn VBA durchläuft, stoppt es nach jeder einzelnen Prüfung. Fehlt da vielleicht ein
kleines "do loop" oder "for next" ? Habe noch keine endgültige Lösung. Einfacher lässt sich das ganze nicht vielleicht gestalten oder ?! Das mit dem eingebauten Zähler war für mich unverständlich. (tut mir leid-vielleicht bin ich wirklich zu blöd!) Hier nochmal das was ich vorhabe mit den außer Kraft gesetzten Zeilen die ich ebenfalls als Prüfung eingebaut haben möchte, bevor die gesammte Zeile ausgeschnitten wird.
Bogentresor_Abgang:
If OptionButton3.Value = False And OptionButton4.Value = False Then _
MsgBox ("Bitte Zugang oder Abgang auswählen !"): Exit Sub
If TextBox7.Value = "" Then _
MsgBox ("Bitte geben Sie hier " + Chr(13) + "die Buchungsbelegnummer an !"): TextBox7.SetFocus: Exit Sub
If TextBox11.Value = "" Then _
MsgBox ("Bitte Empfänger eingeben !"): TextBox11.SetFocus: Exit Sub
If TextBox9.Value = "" Then _
MsgBox ("Bitte die Personalnummer" + Chr(13) + " des 1.Freigebers eingeben !"): TextBox9.SetFocus: Exit Sub
If TextBox10.Value = "" Then _
MsgBox ("Bitte die Personalnummer" + Chr(13) + " des 2.Freigebers eingeben !"): TextBox10.SetFocus: Exit Sub
With Worksheets("Archiv")
Worksheets("Bogentresor").Unprotect Password:="bla-bla"
Worksheets("Archiv").Unprotect Password:="bla-bla"
Set gefunden = Worksheets("Bogentresor").Range("H11:H769").Find(Art_des_WP)
' Set gefunden = Worksheets("Bogentresor").Range("J11:J769").Find(Buchungsbelegnummer) !!!!!!!!
' Set gefunden = Worksheets("Bogentresor").Range("G11:G769").Find(KuponNummer_von) !!!!!!!
If gefunden Is Nothing Then MsgBox ("Bestand nicht gefunden !"): TextBox7.SetFocus: Exit Sub
gefunden.EntireRow.Cut
Worksheets("Archiv").Cells(Rows.Count, "C").End(xlUp).Offset(1, 0).EntireRow.Insert
Set gefunden = Worksheets("Archiv").Range("N10:N769").Find("")
gefunden = Datum
Set gefunden = Worksheets("Archiv").Range("O10:O769").Find("")
gefunden = Erster_Freigeber
Set gefunden = Worksheets("Archiv").Range("P10:P769").Find("")
gefunden = Zweiter_Freigeber
Set gefunden = Worksheets("Archiv").Range("Q10:Q769").Find("")
gefunden = Empfänger
End With
....
Worksheets("Bogentresor").Protect Password:="bla-bla"
Worksheets("Archiv").Protect Password:="bla-bla"
LängeF = 3 ' Dauer festlegen.
StartF = Timer ' Anfangszeit setzen.
Do While Timer < StartF + LängeF
DoEvents
Loop
Label11.Visible = False
GoTo Ende:
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige