Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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

Suchfunktion in VBA

Suchfunktion in VBA
06.09.2022 20:38:28
Heinz
Hallo im Forum,
In meinen Code werden alle TabBlätter durchsucht die einen Teil vom Wert der in B3 steht.
Die werden alle untereinander aufgelistet. Funktioniert auch für die Spalten A,B,C Ausgezeichnet,
leider wird in den Spalten D, E, F kein Wert angezeigt.
Wo liegt bitte der Fehler ?
Danke, Heinz

Option Explicit
Private Sub CommandButton1_Click()
Const z1 = 4 'erste Suchzeile
Dim shK As Worksheet
Dim z As Long, z0 As Long, I As Long, lz As Long
Dim blatt As Integer
' Spalte A = Nummer, Spalte B = Datum, Spalte C = Buchungstext, Spalte D = Kostenarten, Spalte E = Ausgaben, Spalte F = Einnahme
Dim Nummer As String, Datum As Date, Buchungstext As String, Kostenarten As String, Ausgaben As Double, Einnahmen As Double
z0 = 7 'erste Ausgabezeile in "Suche"
Me.Rows(z0 & ":" & Rows.Count).ClearContents
Columns("G:H").Hidden = True
'ab Blatt 2 bis zum letzten (1 ist wohl das Suchblatt)
For blatt = 2 To ThisWorkbook.Sheets.Count
Set shK = Sheets(blatt)
With shK
z = z1
lz = .Cells(Rows.Count, 1).End(xlUp).Row
Do
'Datensatz ermitteln:
On Error Resume Next
Datum = CDate(.Cells(z, 2))
If Err.Number > 0 Then
MsgBox "Fehler in Blatt " & .Name & ", Zeile" & z
Exit Sub
End If
On Error GoTo 0
Ausgaben = .Cells(z, 8)
Einnahmen = .Cells(z, 9)
Buchungstext = ""
Do
Buchungstext = Buchungstext & " " & .Cells(z, 3)
z = z + 1
Loop Until .Cells(z, 1)  "" Or z > lz
Buchungstext = Mid(Buchungstext, 3)
'Filter:
If InStr(UCase(Buchungstext), UCase(Range("Suchtext"))) > 0 Then
Cells(z0, 1) = Nummer
Cells(z0, 2) = Datum
Cells(z0, 3) = Buchungstext
Cells(z0, 4) = Kostenarten
Cells(z0, 5) = Ausgaben
Cells(z0, 6) = Einnahmen
Cells(z0, 1) = z - 4
z0 = z0 + 1
End If
Loop Until z > lz
End With
Next blatt
End Sub

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion in VBA
06.09.2022 21:46:46
ralf_b
für mich sieht das so aus das nur in Spalte 3 gesucht wird. denn nur aus Spalte 3 wird der Buchungstext erstellt ,der dann mit dem Suchtext durchsucht wird.
Kostenarten werden gar nicht befüllt,
die beiden anderen aus Spalte 8 und 9 . Steht da nichts drin, wird nichts übernommen.
AW: Suchfunktion in VBA
06.09.2022 23:05:04
onur
1) lz = .Cells(Rows.Count, 1).End(xlUp).Row und nicht lz = .Cells(.Rows.Count, 1).End(xlUp).Row ?
2) Das Me kannst du dir sparen, da du dich sowieso im Codemodul des Blattes befindest.
3) Cells(z0, 1) = Nummer und etwas tiefer Cells(z0, 1) = z - 4 ?
4) Wo wird der Wert der Variable "Kostenarten" gesetzt?
Mehr, wenn du auch mal die Datei postest.
Anzeige
Danke an alle Helfer
07.09.2022 18:22:44
Heinz
Danke an alle Helfer,
Besonders dir onur läuft wie geschmiert.

Was für ein Chaos-Code - Wenn man einen Fehler eliminiert hat, kommen die nächsten zwei.
Ja das sind meine Programmieranfänge.
Nochmals DANKE
Sg, Heinz
Anzeige
Gerne !
07.09.2022 18:24:25
onur
Nochmals eine Bitte
07.09.2022 18:52:30
Heinz
Hallo onur,
Ist mir echt peinlich,.
Aber in dieser Arbeitsmappe gibt es noch mehr TabBlätter, nicht nur Jän,Feb, bis Dez,
Könnte man die 12 Monate nicht in eine variable setzen ? So das nur die Monatsblätter angesprochen werden.
Die Zahl hinter den Monaten werde ich löschen,jetzt zB. Jän21 werde die 21 löschen.
Bitte
Sg, Heinz
AW: Nochmals eine Bitte
07.09.2022 19:09:54
onur
Mach z.B. 022021 oder 032021 daraus, dann ist es einfacher.
AW: Nochmals eine Bitte
08.09.2022 07:31:08
Heinz
Guten morgen onur

Könnte man die 12 Monate nicht in eine variable setzen ?
Habe jetzt die restlichen TabBlätter am Anfang gestellt, und fange mit Blatt 7 zum suchen an.
Funktioniert Dank deiner Hilfe ganz Toll, Danke.
Das einzige Manko was die Arbeitsmappe noch hat.
Beim TabBlatt "Suchen" muß ich den ganzen Suchbegriff eingeben, zB. "Versicherung sparen" es wäre optimal wenn ich nur ein paar Werte eingeben müßte
ZB. "Vers" und es wird alles aufgelistet das denn Wert "Vers" enthält.
Sonst alles SUPER
Gruß, Heinz
https://www.herber.de/bbs/user/155049.xlsm
Anzeige
AW: Nochmals eine Bitte
08.09.2022 07:50:58
Luschi
Hallo Heinz,
tausche diese Zeile:
If Trim(UCase(Buchungstext)) = Trim(UCase(Range("Suchtext"))) Then
gegen diese Zeile aus
If InStr(1, Trim(UCase(Buchungstext)), Trim(UCase(Range("Suchtext"))), vbTextCompare) Then
Gruß von Luschi
aus klein-Paris
AW: Nochmals eine Bitte
08.09.2022 07:54:18
Heinz
Guten morgen Luschi,
Funktioniert SUPER !!!
Recht herzlichen Dank.
Sg, Heinz
AW: Suchfunktion in VBA
07.09.2022 10:10:45
Herbert_Grom
Hallo Heinz,
warum machst du dir das Leben denn so schwer und erstellst für jeden Monat ein separates Sheet? Das kann man doch auch sehr viel einfacher machen! Wenn du alle Daten, so wie ich das 25 Jahre lang gemacht habe, in einer Tabelle sammelst und in einem "Monatsblatt" den gewünschten Monat auswählst und mit diesen Daten das Monatsblatt füllst. Und die Umbenennung der Sheets entfällt dann auch noch! Was meinst du dazu? Wenn du das willst, baue ich dir da mal ein Beispiel, mit deinen Daten aus der Datei.
Servus
Anzeige
AW: Suchfunktion in VBA
07.09.2022 10:28:00
Heinz
Hallo Herbert,

Wenn du das willst, baue ich dir da mal ein Beispiel, mit deinen Daten aus der Datei.
Ja, Bitte, das wäre sehr nett von dir.
Danke
sg, Heinz
AW: Suchfunktion in VBA
07.09.2022 12:10:46
Herbert_Grom
Hallo Heinz,
wofür benutzt du die 3 "*" z. B. in "Versicherung Auto ***"?
Servus
AW: Suchfunktion in VBA
07.09.2022 12:22:09
Heinz
Hallo Herbert,

wofür benutzt du die 3 "*" z. B. in "Versicherung Auto ***"?
Die Sterne habe ich nur für das Forum hergenommen, hier stehen normal Namen, zB. Versicherung Auto Heinz
Danke
Heinz
AW: Suchfunktion in VBA
07.09.2022 19:02:44
Herbert_Grom
Hallo Heinz,
ich bin noch nicht ganz fertig. Aber Morgen schicke ich dir meinen Vorschlag.
Servus
Anzeige
AW: Suchfunktion in VBA
07.09.2022 19:05:10
Heinz
Hallo Herbert,
Bitte keinen Stress.
Ich sage einstweilen schon mal Danke für deine Hilfestellung.
Danke
Sg, Heinz
AW: Suchfunktion in VBA
08.09.2022 09:06:05
Herbert_Grom
Hallo Heinz,
ich habe das Teil fertig. Schick mir doch mal bitte deine eMail-Adr, da ich es nicht gerne hier veröffentlichen will.
Servus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige