vielleicht könnt ihr mir weiterhelfen da ich in weiten Internet nichts passendes zu meine Frage finden könnte. Ich habe einen Langen Excel Liste, die von Mitarbeitern ständig aktualiseirt werden. Leider passiert es sehr oft, das Einträge vergessen werden, wo ich jedes mal danach suchen muß. Vielleicht gibt es über VBA eine Möglichkeit, wo mir das suchen etwas einfacher machen kann ? Daher meine Fragen an euch.
Wenn in Spalte D ein Textinhalt steht, muß in Spalte V auch ein Textinhalt stehen und in Spalte W ein Zahl. Wenn jetzt in Spalte V oder W kein Textiinhalt oder Zahl steht soll er eine Meldung geben und mir sagen in welcher Spalte/Zelle er das gefunden hat.
@RPP63: Danke, das mit der Formel ist eine gute Idee nur sind die Tabellenblätter nicht von mir, kann nicht so ohne weiteres Formeln einbauen. Ich dachte ich mache mir ein eigenes Blatt und prüfe extern die Dateien nach vollständigkeit durch, deswegen wollte ich auch die Meldung nach Spalte/Zeile.
Ich habe diesen Code gefunden:
Code:
Dim rng as Range set rng = ActiveSheet.Range("A1:B100").Find("Suchbegriff") if rng is nothing then MsgBox "Nichts gefunden" exit sub end if MsgBox "Zeile: " & rng.row & "; Adresse: " & rng.Address
leider erfüllt dieser Code bis auf die Anzeigen der Spalte/Zeile nicht meine Anforderungen. Da ich mich mit VBA nicht auskenne weiss ich nicht wie ich das umbauen muß.
@snb: war fasziniert von Deinem super kurzen, cleveren Code und habe den einmal ausprobiert. - Hat mir bei meinem Test bis Zeile 20 immer alle Zeilen auch ohne Übereinstimmung angezeigt. Habe etwas modifiziert und nun wirft er nur die Zeilen mit Übereinstimmung aus. - Ist das so korrekt?
Code:
Sub M_snb() sn = Filter([transpose(if(NOT(ISTEXT(D2:D20)*ISTEXT(V2:V20)*ISnumber(W2:W20)),"","_"&row(2:20)))], "_") MsgBox Join(sn, vbLf) End Sub
@snb: Danke, funktioniert soweit gut nur gibs da ein Problem. Die MsgBox geht über das Bildschirm hinaus bzw. ist zu lang. Beim korrigieren der gefundene Fehler wird die Liste natürlich kürzer, nur würde es mich denoch intressieren ob runtergesrollt werden kann oder die gefunden Zeilen nicht nur untereinander sonder auch nebeneinander aufgelistet werden kann ? Zum schluss noch, wenn er nichts findet soll er eine Meldung erscheinen z.B alles O.K oder keine Fehler gefunden. Aktuell zeigt er das selbe MsgBox an nur leer.
ich habe diesmal eine Excel Datei erstellt wo das ganze vielleicht besser zu erkennen ist. Leider kann ich das Orginale nicht Hochladen ,da es Firmen interne Daten beinhaltet. Beispiel 1 prüft Arbeitsblatt Beispiel 1, Beispiel 2 prüft Arbeitsblatt Beispiel 2,Beispiel 3 prüft Arbeitsblatt Beispiel 3 Diesmal soll es nicht als MsgBox ausgegeben werden sondern in die Zeile I5:Q11 übertragen werden. Finde es so übersichtlicher. Leider kenne ich mich mit VBA überhaupt nicht aus (könnt ihr an der Datei erkennen).
@RPP63: Es sind mehrere Dateien die bis zu 6000 Zeilen lang sind, jede Datei einzeln zu öffnen und zu suchen ist etwas Zeitaufwendig. Mit VBA kann ich über eine Dateie auf mehrere Dateien mit ein Klick sehen ob ein Eintrag fehlt, was auch mit den Beispiel von Snb soweit gut funktioniert hat. Problem dabei ist nur die MsgBox, deswegen hatte ich gefragt gehabt ob das auch anders gelöst werden kann,wie z.B in der Datei wo ich angehängt habe. Bin leider was VBA angeht ein Noob.