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

Suchmakro - sucht, löscht, sucht

Suchmakro - sucht, löscht, sucht
18.08.2004 20:14:42
MichiM
Hallo Leute,
ich starte ein Suchmakro (in Modul1) aus einer UserForm.
Bei Auswahl eines KD-Nummer bzw. eines Namen sollen die dazugehörigen Rechnungen gesucht und im Blatt "Zwischenspeicher" kopiert werden.
Nun werden mir die Werte kopiert - aber bei einem weiterem Suchergebniss wieder überschrieben - am Ende steht also immer nur die "letzte gefundene Rechnung" im Zwischenspeicher.
---------------------------------------

Sub Rechnungsdaten_suchen()
Dim Suchkunde As String
ThisWorkbook.Sheets("Zwischenspeicher").Unprotect "meinPasswort"
Worksheets("Zwischenspeicher").Range("A26:L40").ClearContents
Suchkunde = ""
Worksheets("Zwischenspeicher").Cells(2, 1) = ufKUNDEN.TextBox70.Value
Worksheets("Zwischenspeicher").Cells(2, 2) = ufKUNDEN.TextBox71.Value
Worksheets("Zwischenspeicher").Cells(2, 3) = ufKUNDEN.tbRECHNUNG_ANSCHRIFT.Value
Worksheets("Zwischenspeicher").Cells(2, 4) = ufKUNDEN.tbRECHNUNG_PLZ.Value
Worksheets("Zwischenspeicher").Cells(2, 5) = ufKUNDEN.tbRECHNUNG_ORT.Value
Worksheets("Zwischenspeicher").Cells(2, 6) = ufKUNDEN.tbRECHNUNG_LAND.Value
Worksheets("Zwischenspeicher").Cells(2, 7) = Worksheets("Hauptmenü").Cells(1, 6)
If Not (Worksheets("Zwischenspeicher").Cells(2, 1).Value) = "" Then
Suchkunde = Worksheets("Zwischenspeicher").Cells(2, 1).Value
Auswahlsumme = Auswahlsumme + 1
End If
Select Case Auswahlsumme
Case 1
Suche1 (Suchkunde)
End Select
ThisWorkbook.Sheets("Zwischenspeicher").Protect "meinPasswort"
End Sub

---------------------------------------

Sub Suche1(Kunde As String)
Dim I As Integer
For I = 2 To Worksheets("Rechnungen").Cells(Rows.Count, 1).End(xlUp).Row
If Kunde = Worksheets("Rechnungen").Cells(I, 1).Value Then
Kopieren (I)
End If
Next
End Sub

---------------------------------------

Sub Kopieren(Zeile As Long)
ThisWorkbook.Sheets("Zwischenspeicher").Unprotect "meinPasswort"
Dim NextRow As Long
NextRow = Worksheets("Zwischenspeicher").Cells(Rows.Count, 6).End(xlUp).Row + 1
Worksheets("Zwischenspeicher").Cells(NextRow, 1) = _
Worksheets("Rechnungen").Cells(Zeile, 3)
Worksheets("Zwischenspeicher").Cells(NextRow, 2) = _
Worksheets("Rechnungen").Cells(Zeile, 4)
Worksheets("Zwischenspeicher").Cells(NextRow, 3) = _
Worksheets("Rechnungen").Cells(Zeile, 6)
Worksheets("Zwischenspeicher").Cells(NextRow, 4) = _
Worksheets("Rechnungen").Cells(Zeile, 5)
Worksheets("Zwischenspeicher").Cells(NextRow, 8) = _
Worksheets("Rechnungen").Cells(Zeile, 13)
Worksheets("Zwischenspeicher").Cells(NextRow, 10) = _
Worksheets("Rechnungen").Cells(Zeile, 14)
Worksheets("Zwischenspeicher").Cells(NextRow, 11) = _
Worksheets("Rechnungen").Cells(Zeile, 15)
Worksheets("Zwischenspeicher").Cells(NextRow, 12) = _
Worksheets("Rechnungen").Cells(Zeile, 16)
ThisWorkbook.Sheets("Zwischenspeicher").Protect "meinPasswort"
End Sub

---------------------------------------
Weiss einer, was ich hier falsch mache?
Gruss
MichiM

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mal auf die Schnelle
18.08.2004 20:31:11
DieterB
L40").ClearContents

löscht die Inhalte der Zellen
Gruß
DieterB
AW: mal auf die Schnelle
18.08.2004 20:42:36
MichiM
Richtig, aber bevor die Suche "beginnt".
War mir allerdings auch nicht sicher und habe diesen Teil auch schon als Kommentar deklariert - der Fehler war aber dergleiche :-)
Gruss
MichiM
AW: mal auf die Schnelle
18.08.2004 20:44:27
DieterB
hast du mal den debugger eingesetzt?
Gruß
DieterB
AW: mal auf die Schnelle
18.08.2004 20:47:38
MichiM
Wenn ich wüsste, wie er "einzusetzen" geht....
Was bewirkt er?
Gruss
MichiM
AW: mal auf die Schnelle
18.08.2004 20:51:03
DieterB
der debugger geht step by step durch den code
du markierst eine zeile im VBA-Code und dann die F8-taste
findest du im VBA-Editor in der Menü-Leiste
Gruß
DieterB
Anzeige
AW: mal auf die Schnelle
18.08.2004 20:52:49
MichiM
Ich vermute, dass etwas mit
NextRow = Worksheets("Zwischenspeicher").Cells(Rows.Count, 6).End(xlUp).Row + 1
nicht stimmt.
Die Werte werden immer(!) in der Zeile 26 eingetragen - egal ob bereits ab Zeile 10 oder erst ab Zeile 35 frei ist...
Gruss
MichiM
AW: Suchmakro - sucht, löscht, sucht
PeterW
Hallo MichiM,
vielleicht solltest du erst mal die erste leere Zeile in "Zwischenspeicher" ermitteln und dorthin die Werte schreiben, statt immer in Zeile 2 anzufangen. Warum der Zwischenspeicher überhaupt nötig ist kann ich nicht nachvollziehen.
Gruß
Peter
AW: Suchmakro - sucht, löscht, sucht
18.08.2004 20:59:52
MichiM
Hallo Peter,
wieso beginne ich immer in Zeile 2?
Was ermittel ich denn mit
NextRow = Worksheets("Zwischenspeicher").Cells(Rows.Count, 6).End(xlUp).Row + 1
Den Zwischenspeicher brauche ich, um Kundenbezogene Rechnungen aus der Gesamtliste zu kopieren - zwecks Index einer ComboBox in der UserForm...
So hat der Benutzer immer die Rechnungen zur Auswahl, die zum Kunden gehören.
Gruss
MichiM
Anzeige
AW: Suchmakro - sucht, löscht, sucht
PeterW
Hallo MichiM,
aus deinen Codefragmenten:
Worksheets("Zwischenspeicher").Cells(2, 1) = ufKUNDEN.TextBox70.Value
Worksheets("Zwischenspeicher").Cells(2, 2) = ufKUNDEN.TextBox71.Value
Gruß
Peter
AW: Suchmakro - sucht, löscht, sucht
18.08.2004 21:10:35
MichiM
Dort werden die Werte aus der UserForm gelesen (als Suckriterium und für die weitere Bearbeitung :-)
Aber selbst wenn ich die weglasse (und das Suchkriterium manuell eingebe) passiert der Fehler :-(
Daran kann es also nicht liegen....
Gruss
MichiM
AW: Suchmakro - sucht, löscht, sucht
PeterW
Hallo MichiM,
aus deiner ursprünglichen Frage:
"Nun werden mir die Werte kopiert - aber bei einem weiterem Suchergebniss wieder überschrieben - am Ende steht also immer nur die "letzte gefundene Rechnung" im Zwischenspeicher."
Gruß
Peter
Anzeige
?
18.08.2004 21:22:54
MichiM
Im Ausgangsposting habe ich auch geschrieben:
Bei Auswahl eines KD-Nummer bzw. eines Namen sollen die dazugehörigen Rechnungen gesucht und im Blatt "Zwischenspeicher" kopiert werden.
Dachte, es würde reichen, wenn ich nur einmal schreibe, dass es sich um ein Tabellenblat handelt...
Die leere Zeilensuche klappt (aus welchen Gründen auch immer) nicht richtig - aber was soll da verkehrt sein?
Gruss
MichiM
AW: ?
PeterW
Sorry MichiM,
bei deiner Aufgabenstellung muss ich leider passen.
Viel Erfolg
Peter
Auf ein Neues...
18.08.2004 21:53:40
MichiM
Also,
in der angehängten Datei wird über den Button "Rechnung suchen" im Blatt "Zwischenspeicher" das Makro Rechnungsdaten_suchen ausgelöst.
Dies soll die Daten (in diesem Beispiel alle Rechnungen) in das Blatt Zwischenspeicher kopieren.
Seltsamer weise wird aber immer in die Zeile 26 geschrieben - und meine frage ist: WARUM?
https://www.herber.de/bbs/user/9790.xls
Gruss
MichiM
Anzeige
AW: Auf ein Neues...
18.08.2004 22:14:53
DieterB
Ich will ja nix sagen, aber die datei enthält kein UF
AW: Auf ein Neues...
18.08.2004 22:29:42
MichiM
Ich wollte ungern die Originaldatei mit den "externen" Datei-Verweisen hochladen - daher die gekürzte Version.
Ist vom Prinzip aber nichts anderes - die Suchkriterien (die im Original in der userForm stehen) sind in der Tabelle als Wert angegeben.
Die Suche an sich funktioniert ja auch - aber nicht die Ausgabe. Und darum geht es hier...
Gruss
MichiM
hat sich erledigt
20.08.2004 18:28:47
MichiM
Nachdem ich verschiedene Varianten zum ermitteln der letzten Zeile versucht habe, funktioniert es jetzt endlich - frag mich aber keiner warum....
Gruss
MichiM
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige