30.10.2020, 13:26
Guten Tag,
ich bräuchte wieder einen Tipp eines Fachmannes wie ich mein VBA-Code so verbessern kann, damit ich mein Ziel ereiche.
Ich habe im Tabellenblatt "Offene_Posten" eine Reihe von Konten, die jeweils durch eine Leerzeile getrennt sind. Wenn man nun diese Offene Posten-Liste nach einem Mieter-Namen durchsuchen möchte, sollte man eine Abfrage starten können, in der man den Namen des Mieters eingeben kann.
Der Code soll alle Zeilen in der Spalte D durchlaufen. Wenn der eingegebene Wert durch die InputBox dem Zellinhalt in Spalte D entspricht (als nicht gleich, sondern nur entspricht), dann soll es das Konto (identifiziert über eine CurrentRegion) nicht ausblenden; alle weiteren Konten sollen hingegen ausgeblendet werden. Im beigelegten Beispiel sollen z.B. alle Konten eingeblendet bleiben, welche z.B. den Namen "Schubert" beinhalten.
Nun habe ich einen Code mit einer Schleife erstellt, der soweit funkioniert, doch gerade in der Zeile mit dem If-Satz hapert es.
Hat jemand einen Tipp für mich? Ich lege auch ein Beispiel-File bei.
Am Ende muss ich dann noch den Code so ergänzen, dass zwischen den eingeblendeten Konten nur je eine Leerzeile bleibt und nicht mehrere.
Ich danke schon mal vielmals im Voraus.
Lieben Gruß, Mirko
ich bräuchte wieder einen Tipp eines Fachmannes wie ich mein VBA-Code so verbessern kann, damit ich mein Ziel ereiche.
Ich habe im Tabellenblatt "Offene_Posten" eine Reihe von Konten, die jeweils durch eine Leerzeile getrennt sind. Wenn man nun diese Offene Posten-Liste nach einem Mieter-Namen durchsuchen möchte, sollte man eine Abfrage starten können, in der man den Namen des Mieters eingeben kann.
Der Code soll alle Zeilen in der Spalte D durchlaufen. Wenn der eingegebene Wert durch die InputBox dem Zellinhalt in Spalte D entspricht (als nicht gleich, sondern nur entspricht), dann soll es das Konto (identifiziert über eine CurrentRegion) nicht ausblenden; alle weiteren Konten sollen hingegen ausgeblendet werden. Im beigelegten Beispiel sollen z.B. alle Konten eingeblendet bleiben, welche z.B. den Namen "Schubert" beinhalten.
Nun habe ich einen Code mit einer Schleife erstellt, der soweit funkioniert, doch gerade in der Zeile mit dem If-Satz hapert es.
Hat jemand einen Tipp für mich? Ich lege auch ein Beispiel-File bei.
Am Ende muss ich dann noch den Code so ergänzen, dass zwischen den eingeblendeten Konten nur je eine Leerzeile bleibt und nicht mehrere.
Ich danke schon mal vielmals im Voraus.
Lieben Gruß, Mirko
Code:
Sub Probe_AbfrageNameOPOS()
Dim myValue As String
myValue = InputBox("Geben Sie bitte den Namen des gesuchten Mieters ein.", "ABFRAGE MIETER-NAME")
If myValue = "" Then
Exit Sub
End If
For n = 5 To Cells(Rows.count, 1).End(xlUp).Row
Rows(n).Select
If InStr(Cells(n, 4).Value, myValue) = False Then
Cells(n, 4).Select
ActiveCell.CurrentRegion.Select
Selection.EntireRow.Hidden = True
End If
Next n
End Sub