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

Forumthread: Erste und Letzte Zeile mit bestimmtem Wert VBA

Erste und Letzte Zeile mit bestimmtem Wert VBA
09.12.2014 16:53:07
Stefan
Hallo Zusammen,
Wir würden gerne aus einer Spalte die erste und die letzte Zeile die einen bestimmten Wert haben auslesen.
Beispiel:
Spalte A
1 WERTA
2 WERTA
3 WERTB
4 WERTB
5 WERTC
Hierzu würden wir nun gerne wissen in welcher Zeile WERTB zum ersten Mal (A3) auftaucht und Welches die letzte Zeile mit WERT B (A4) ist. Von einer Sortierung kann man ausgehen.
ICh bin echt am verzweifeln - ich hoffe Ihr könnt mir helfen
Liebe Grüsse
Stefan

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Erste und Letzte Zeile mit bestimmtem Wert VBA
09.12.2014 17:04:58
Daniel
Hi
in VBA am einfachsten über die .FIND-Funktion:
über den Parameter SearchDirection steuerst du, ob die Suche von oben nach unten oder unten nach oben gehen soll.
Dim Zeile1 as long
dim Zeile2 as long
Zeile1 = Columns(1).Find(What:="WERTB", LookAt:=xlwhole, SearchDirection:=xlNext).Row
Zeile1 = Columns(1).Find(What:="WERTB", LookAt:=xlwhole, SearchDirection:=xlPrevious).Row

direkt in Excel über die unterschiedlichen VERGLEICH-Varianten:
erste Zeile: =Vergleich("WERTB";A:A;0)
letzte Zeile: =Vergleich("WERTB";A:A;1)
für die letzte Zeile muss aber die Datei nach Spalte A aufsteigend sortiert sein.
Gruß Daniel
Gruß Daniel

Anzeige
AW: Erste und Letzte Zeile mit bestimmtem Wert VBA
09.12.2014 17:18:15
Stefan
Hi Daniel,
Super Super Super, Vielen Dank ich habe die VBA Löscung genommen und es funktioniert.
Folgenden Code haben wir daraus gebaut. Suche nach allen Zeilen die MCD3 Haben (Wird noch variable) und Blende Sie aus wenn in einer Bestimmten Zelle nicht MCD3 Steht. Steht MCD3 in einer bestimmten Zelle werden Sie wieder eingeblendet.
Vielen Dank für deine Hilfe und einsn schönen Abend
Private Sub Worksheet_Change(ByVal Target As Range)
Dim varAusblend As Range
Dim varSchalter As Range
Dim AnfMCD3 As Integer
Dim ENDMCD3 As Integer
AnfMCD3 = Columns(2).Find(What:="MCD3", LookAt:=xlWhole, SearchDirection:=xlNext).Row
ENDMCD3 = Columns(2).Find(What:="MCD3", LookAt:=xlWhole, SearchDirection:=xlPrevious).Row
MsgBox AnfMCD3
MsgBox ENDMCD3
Set varAusblend = ActiveSheet.Rows(AnfMCD3 & ":" & ENDMCD3)
Set varSchalter = ActiveSheet.Cells(12, 15)
If varSchalter.Value = "MCD3" And varAusblend.Hidden = True Then
varAusblend.Hidden = False
Else
If varSchalter.Value  "MCD3" And varAusblend.Hidden = False Then
varAusblend.Hidden = True
End If
End If
LotusScriptControlMode = Application.Run("RotzlerMacros.xls!fGetLotusScriptControlMode")
If LotusScriptControlMode = "1" Then
'### nothing ###
Else
' Application.Run "RotzlerMacros.xls!Rotzler_Worksheet_Change", Target
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Erste und Letzte Zeile mit Bestimmtem Wert in VBA Finden


Schritt-für-Schritt-Anleitung

Um die erste und letzte Zeile mit einem bestimmten Wert in einer Excel-Spalte zu finden, kannst du die .FIND-Funktion in VBA verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul ein.
  3. Kopiere und füge den folgenden Code ein:
Dim Zeile1 As Long
Dim Zeile2 As Long

' Erste Zeile mit dem Wert "WERTB" finden
Zeile1 = Columns(1).Find(What:="WERTB", LookAt:=xlWhole, SearchDirection:=xlNext).Row

' Letzte Zeile mit dem Wert "WERTB" finden
Zeile2 = Columns(1).Find(What:="WERTB", LookAt:=xlWhole, SearchDirection:=xlPrevious).Row
  1. Führe den Code aus, um die Zeilen zu ermitteln.

Mit diesem Code kannst du die erste Zeile mit Wert und die letzte Zeile mit Wert ermitteln. Achte darauf, dass die Spalte (in diesem Fall Spalte A) die richtigen Werte enthält.


Häufige Fehler und Lösungen

  1. Fehler: "Object variable or With block variable not set"

    • Lösung: Stelle sicher, dass der gesuchte Wert in der Spalte vorhanden ist. Wenn der Wert nicht gefunden wird, gibt .Find Nothing zurück.
  2. Fehler: Falscher Suchbereich

    • Lösung: Überprüfe, ob die richtige Spalte (z.B. Columns(1)) gewählt wurde und ob das Suchkriterium korrekt ist.
  3. Fehler: Keine Zeilen gefunden

    • Lösung: Vergewissere dich, dass die Suche nicht durch Filter oder ausgeblendete Zeilen beeinflusst wird.

Alternative Methoden

Neben der VBA-Methode gibt es auch Excel-Formeln, die du verwenden kannst:

  • Erste Zeile finden:

    =VERGLEICH("WERTB";A:A;0)
  • Letzte Zeile finden (nach Sortierung):

    =VERGLEICH("WERTB";A:A;1)

Hinweis: Für die letzte Zeile mit Wert muss die Spalte aufsteigend sortiert sein.


Praktische Beispiele

Angenommen, du hast die folgende Liste in Spalte A:

A
WERTA
WERTA
WERTB
WERTB
WERTC

Mit dem VBA-Code findest du:

  • Erste Zeile mit "WERTB" = 3
  • Letzte Zeile mit "WERTB" = 4

Wenn du die erste Zelle mit bestimmten Wert finden möchtest, reicht der Einsatz der .FIND-Methode.


Tipps für Profis

  • Nutze die SearchDirection-Eigenschaft, um die Suchrichtung anzupassen. Setze sie auf xlNext für aufsteigende Suchen und xlPrevious für absteigende Suchen.
  • Kombiniere die .Find-Methode mit Error Handling, um eleganter mit nicht gefundenen Werten umzugehen.
  • Verwende das FindNext-Feature, um alle Vorkommen eines Wertes zu durchsuchen.

FAQ: Häufige Fragen

1. Wie finde ich die erste Zeile mit einem Wert in einer anderen Spalte?
Du kannst die Spalte in der .Find-Methode ändern, z.B. Columns(2) für die zweite Spalte.

2. Was passiert, wenn der Wert nicht gefunden wird?
Die Variable, in die du das Ergebnis speicherst, bleibt unverändert. Es ist ratsam, vor dem Zugriff auf die Zeile zu überprüfen, ob das Ergebnis Nothing ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige