Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle in einer Spalte von unten nach oben suchen

Zelle in einer Spalte von unten nach oben suchen
22.09.2016 07:41:40
unten
Hallo Leute,
ich habe eine Frgae zu meinem Post von gestern:
Im folgenden Makro Code wird in einer Spalte nach der Zelle mit dem Wert c (Teilenr.) gesucht. Soweit funktioniert alles. Nun möchte ich dass wenn die Teilenr. gefunden wurde, in der Spalte wider so lange nach oben gesprungen wird, bis die nächste Zelle mit dem Wort "Ergebnis" erreicht ist. Dort soll dann um eine Spalte nach links gegangen und der dortige Wert kopiert werden. Kann mir jemand helfen wie der Code dazu aussehen muss?
Danke im Voraus, im Anschluss der aktuell vorhandene Code, in der Zeile "If Cells(m, 10).Value = c Then wird c gesucht, anschließend muss der code umgestellt werden...
For m = 7 To endequelle
wb2.Activate
ws2.Select
Cells(m, 10).Select
If Cells(m, 10).Value = c Then
geraet = Cells(m - 1, 9)
wb1.Activate
ws1.Select
ActiveSheet.Cells(letztezeilealt + 1, 1).Select
ActiveCell.FormulaR1C1 = "" & geraet
letztezeilealt = letztezeilealt + 1
End If
Next m
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle in einer Spalte von unten nach oben suchen
22.09.2016 12:45:42
unten
Hi
Sub t()
Dim tnNummer As Long, bStep1 As Boolean, bStep2 As Boolean
Dim iZeile As Long
tnNummer = 35
For iZeile = Cells(Rows.Count, 10).End(xlUp).Row To 7 Step -1
If bStep1 Then
If Cells(iZeile, 10) = "Ergebnis" Then
bStep2 = True
Exit For
End If
Else
If Cells(iZeile, 10) = tnNummer Then bStep1 = True
End If
Next iZeile
If bStep2 Then
Cells(iZeile, 9).Copy Range("A1")
Else
MsgBox "kein Ergebnis"
Exit Sub
End If
End Sub

cu
Chris
Anzeige
AW: Zelle in einer Spalte von unten nach oben suchen
22.09.2016 13:03:41
unten
Hi danke für die Hilfe ich werds ausprobieren
Anzeige
Anzeige

Infobox / Tutorial

Zelle in einer Spalte von unten nach oben suchen


Schritt-für-Schritt-Anleitung

Um in einer Excel-Tabelle von unten nach oben zu suchen und den Wert einer Zelle zu kopieren, kannst Du den folgenden VBA-Code verwenden. Dieser Code sucht nach einer bestimmten Teilenummer und springt dann nach oben, bis er eine Zelle mit dem Wort "Ergebnis" findet.

  1. Öffne deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden VBA-Code ein:
Sub SucheVonUntenNachOben()
    Dim tnNummer As Long, bStep1 As Boolean, bStep2 As Boolean
    Dim iZeile As Long
    tnNummer = 35 ' Ändere dies auf die gewünschte Teilenummer
    For iZeile = Cells(Rows.Count, 10).End(xlUp).Row To 7 Step -1
        If bStep1 Then
            If Cells(iZeile, 10) = "Ergebnis" Then
                bStep2 = True
                Exit For
            End If
        Else
            If Cells(iZeile, 10) = tnNummer Then bStep1 = True
        End If
    Next iZeile
    If bStep2 Then
        Cells(iZeile, 9).Copy Range("A1") ' Wert wird nach A1 kopiert
    Else
        MsgBox "kein Ergebnis"
        Exit Sub
    End If
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deiner Excel-Tabelle.
  2. Drücke ALT + F8, wähle SucheVonUntenNachOben aus und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Fehler: "kein Ergebnis"

    • Lösung: Überprüfe, ob die Teilenummer tatsächlich in der angegebenen Spalte vorhanden ist. Stelle sicher, dass Du die richtige Spalte (in diesem Fall Spalte 10) und die richtige Zeilenanzahl angibst.
  • Fehler: Der Wert wird nicht kopiert

    • Lösung: Stelle sicher, dass die Zelle, in die der Wert kopiert werden soll (in diesem Fall A1), nicht geschützt oder leer ist.

Alternative Methoden

Wenn Du eine einfachere Methode ohne VBA bevorzugst, kannst Du auch die Funktion VERGLEICH und INDEX in Excel verwenden:

  1. Verwende die VERGLEICH-Funktion, um die Position der Teilenummer zu finden.
  2. Nutze die INDEX-Funktion, um den Wert der Zelle mit "Ergebnis" zu finden.
=INDEX(A:A;VERGLEICH("Ergebnis";B:B;0)-1)

Diese Formel setzt voraus, dass sich die Daten in den Spalten A und B befinden.


Praktische Beispiele

Angenommen, Du hast eine Excel-Tabelle mit den folgenden Werten in der Spalte J:

1
2
3
Ergebnis
4
5
35

Wenn Du den oben genannten VBA-Code ausführst, wird der Wert 4 in Zelle A1 kopiert, da er sich direkt links von der Zelle mit "Ergebnis" befindet.


Tipps für Profis

  • Um Deine Excel-Tabelle von unten nach oben zu drehen, kannst Du die Funktion "Daten transponieren" verwenden. Markiere die Daten, kopiere sie, klicke mit der rechten Maustaste auf die Zielzelle und wähle Inhalte einfügenTransponieren.
  • Wenn Du häufig mit VBA arbeitest, empfehle ich, eine eigene Bibliothek für nützliche Makros zu erstellen, um Zeit zu sparen.

FAQ: Häufige Fragen

1. Wie kann ich die Teilenummer dynamisch anpassen? Du kannst eine Zelle in der Tabelle auswählen, die die Teilenummer enthält, und den Code anpassen, um diesen Wert zu verwenden.

2. Funktioniert dieser Code auch in Excel 365? Ja, der bereitgestellte VBA-Code funktioniert in allen aktuellen Excel-Versionen, einschließlich Excel 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige