Zeile nach Wert durchsuchen VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeile nach Wert durchsuchen VBA
von: BADA
Geschrieben am: 13.08.2015 15:31:15

Hallo liebe Community,
ich habe ein Problem, welches sich hoffentlich mit euerer Hilfe lösen lässt.
Ich muss Daten aufbereiten, die in Excel als eine Tabelle importiert werden. Für mich wichtige Werte sind die, die sich in der Spalte "P22x998" befinden. So weit so gut. Nun variiert die Anzahl der Spalten, also auch die Koordinaten meiner Spalte von Datei zu Datei.
Da ich aber bestimmte werte aus der Spalte benötige, würde ich gerne die ganze erste Zeile nach dem Ausdruck "P22x998" durchsuchen. Die Stelle, an der sich Die Spalte befindet (also z.B. D = 4 oder E = 5) als Variable speichern ( z.B. Variable = 5 , für die STelle E)
Mit der Variable lässt sich dann arbeiten, denn danach greift mein Makro, welches mit den Koordinaten der Spalte und Zeile die richtigenWerte selbststäändig rauszieht.
Ich müsste das Makro nur noch mit der Koordinate der Spalte in der sich "P22x998" befindet speisen.
Hoffe das war nicht all zu verwirrend.
damit es vielleicht etwas verständlicher wird hier das Makro, welches mit der Koordinate gespeist werden soll:


  • Sheets("Tabelle1").Select
    Spalte = 34 'AH 'die 34 soll durch die Suche ausgegeben werden, hier sind meine Werte
    Set rngGesamt = Cells(2, Spalte)
    For Zeile = 12 To 1000 Step 9 'Ich benötige ab der 2. Zelle jeden 9. Wert (ist 'nicht so wichtig)
    Set rngGesamt = Union(rngGesamt, Cells(Zeile, Spalte))
    Next
    rngGesamt.Copy

    'Brereich einfügen
    Sheets("Tabelle2").Select
    Range("F14").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False

  • Für Anregungen bin ich sehr dankbar!

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: JoWE
    Geschrieben am: 13.08.2015 15:56:34
    Hallo Bada,
    vllt. so: varSP = rows(1).find(what:="P22x998").column
    Gruß
    Jochen

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: Max
    Geschrieben am: 18.08.2015 09:23:54
    Ich danke Dir vielmals Jochen! Sorry für die späte Antwort, hatte in den letzten Tagen leider keinen Internetzugriff...
    Sag mal, hast du eine Idee, wie ich eine Spalte nach der ersten leeren Zelle durchsuchen kann und die Koordinaten dieser dann in eine Variable schreiben kann? Also fast so wie in dem anderen Beispiel, varZL = 7 z.B. , wenn in der Spalte D die ersten 6 Zellen mit Zahlen gefüllt sind.
    hab vielen Dank!
    Gruß
    BADA

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: JoWE
    Geschrieben am: 18.08.2015 10:53:29
    Hallo,
    so z.B.
    Beispiel 1 findet die erste leere Zelle in Spalte 1, die Suche bginnt ganz unten:
    ▲ erste_leere_Zelle_am_Ende = Sheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp).Row + 1
    Beispiel 2 findet die erste leere Zelle in Splate 1, die Suche beginnt ganz oben:
    ▲ erste_leere_Zelle = Sheets("Tabelle1").Cells(1, 1).End(xlDown).Row + 1
    Gruß
    Jochen

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: BADA
    Geschrieben am: 18.08.2015 11:58:11
    Danke JoWe,
    es funktioniert :) habe mich für das Beispiel 2 entschieden.
    Gruß
    BADA

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: BADA
    Geschrieben am: 18.08.2015 12:58:33
    Hi Jochen,
    gibtes eine Möglichkeit bei einem Nichtfinden von "P22x998" in der ersten Zeile, einen Error auszugeben? Eine MessageBox oder etwas änliches mit "P22x998 - nicht gefunden".
    Sonst läuft man Gefahr mit den falschen Werten zu arbeiten, wenn die tabelle nicht stimmt.
    Vielen Dank nochmal!
    Gruß
    BADA

    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: JoWE
    Geschrieben am: 18.08.2015 13:14:58
    schau Dir in der Online-Hilfe zu VBA mal etwas zu Fehlerhandlungsroutinen an.
    Und/oder lies hier: http://vba-tutorial.de/fehler/fehlerbehandlung.htm
    In etwa könnte man das so machen

    Sub test()
        Dim varSP As Long
        On Error GoTo fb
        varSP = ActiveSheet.Rows(1).Find(what:="P22x998").Column
        MsgBox "alles OK"
        'hier was soll passieren wenn die Makrobearbeitung hier wieder einsteigt?
        Exit Sub
    fb:
        MsgBox "P22x998 nicht gefunden", vbOKCancel, "Fehler"
        'entweder so:
        Resume Next '"macht bei 'MsgBox "alles ok"' weiter
        'oder so
        Exit 
    
    Sub 'steigt aus
    End Sub


    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: JoWE
    Geschrieben am: 18.08.2015 13:16:42
    schau Dir in der Online-Hilfe zu VBA mal etwas zu Fehlerhandlungsroutinen an.
    Und/oder lies hier: http://vba-tutorial.de/fehler/fehlerbehandlung.htm
    In etwa könnte man das so machen

    Sub test()
        Dim varSP As Long
        On Error GoTo fb
        varSP = ActiveSheet.Rows(1).Find(what:="P22x998").Column
        MsgBox "alles OK"
        'hier was soll passieren wenn die Makrobearbeitung hier wieder einsteigt?
        Exit Sub
    fb:
        MsgBox "P22x998 nicht gefunden", vbOKCancel, "Fehler"
        'entweder so:
        Resume Next 'macht bei MsgBox alles ok weiter
        'oder assteigen
        Exit Sub
    End Sub


    Bild

    Betrifft: AW: Zeile nach Wert durchsuchen VBA
    von: BADA
    Geschrieben am: 18.08.2015 13:40:29
    Vielen vielen Dank!

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "Zeile nach Wert durchsuchen VBA"