Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA: Zeile ausgeben wo Wert das erste mal vorkommt

VBA: Zeile ausgeben wo Wert das erste mal vorkommt
24.03.2016 09:43:11
Pa
Hallo,
Ich suche einen VBA-Code der folgendes bewirkt:
In Spalte D stehen geordnet Kategorien (M1,M2,M3 usw.)
Die Zeile (z.B. Zeile 20) in der die Kategorie M2 zum ersten mal auftritt, soll unter der Variablen KatM abgespeichert werden ( Also: KatM = 20)
Wie würde ein solcher Code aussehen?
Gruß und Danke im Voraus!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zeile ausgeben wo Wert das erste mal vorkommt
24.03.2016 09:53:54
Werner
Hallo,
probier mal das hier - in einem allgemeinem Modul
Public Sub test1()
'## Suche Blatt1, SpalteD, Suchbegriff steht in Zelle A1, Suchrichtung von oben nach unten
'## Treffer nur, wenn exakt der Suchbegriff (alleine) in der Zelle in Spalte D steht
Dim KatM As Long
KatM = Sheets("Tabelle1").Columns(4).Find(what:=Range("A1").Value, LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlNext).Row
MsgBox "Fundstelle ist in Zeile " & KatM
End Sub
Gruß Werner

AW: VBA: Zeile ausgeben wo Wert das erste mal vorkommt
24.03.2016 10:00:32
Pa
Perfekt, es funktioniert. Vielen Dank!

AW: Update
24.03.2016 10:07:47
Werner
Hallo,
danke für die Rückmeldung. Hier noch ein kleines Update, hatte ich vergessen. Der Code läuft in einen Fehler wenn der Suchbegriff nicht gefunden wird. Hier jetzt noch mit Abfangen dieses Fehlers.
Public Sub test1()
'## Suche Blatt1, SpalteD, Suchbegriff steht in Zelle A1, Suchrichtung von oben nach unten
'## Treffer nur, wenn exakt der Suchbegriff (alleine) in der Zelle in Spalte D steht
Dim KatM As Long
On Error GoTo ausgang
KatM = Sheets("Tabelle1").Columns(4).Find(what:=Range("A1").Value, LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlNext).Row
MsgBox "Fundstelle ist in Zeile " & KatM
Exit Sub
ausgang:
MsgBox Range("A1") & " nicht gefunden."
End Sub
Gruß Werner

Anzeige
AW: Update
24.03.2016 11:53:04
Beverly
Hi Werner,
On Error ist hier nicht notwendig - definiere KatM as Range und benutze es wie folgt:
Public Sub test1()
'## Suche Blatt1, SpalteD, Suchbegriff steht in Zelle A1, Suchrichtung von oben nach unten
'## Treffer nur, wenn exakt der Suchbegriff (alleine) in der Zelle in Spalte D steht
Dim KatM As Range
Set KatM = Sheets("Tabelle1").Columns(4).Find(what:=Range("A1").Value, LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlNext)
If Not KatM Is Nothing Then
MsgBox "Fundstelle ist in Zeile " & KatM.Row
Else
MsgBox Range("A1") & " nicht gefunden."
End If
Set KatM = Nothing
End Sub


Anzeige
AW: Update
24.03.2016 11:58:11
Werner
Hallo Karin,
auch wieder wahr. Sicher die richtigere und vor allem elegantere Methode als on error..
Bin noch am Lernen aber gerade auch deshalb dankbar für derartige Hinweise.
Danke und viel Erfolg beim Eier suchen.
Gruß Werner

AW: VBA: Zeile ausgeben wo Wert das erste mal vorkommt
24.03.2016 09:56:31
Daniel
Hi
kannst du mit .FIND machen:
KatM = columns(4).Find(What:="M2", lookat:=xlwhole, lookIn:=xlvalues, searchdirection:=xlnext).Row

oder mit der Funktion VERGLEICH / MATCH:
KatM = Worksheetfunction.Match("M2", Columns(4), 0)
vorausgesetzt, M2 ist vorhanden.
wenn es vorkommen kann, dass M2 nicht vorhanden ist, müsste man noch etwas anders vorgehen um einen Fehlerabbruch zu vermeiden.
Gruß Daniel

Anzeige
AW: VBA: Zeile ausgeben wo Wert das erste mal vorkommt
24.03.2016 09:56:47
Beverly
Hi,
z.B. so:
Sub Test()
Dim KatM As Variant
KatM = Application.Match("M2", Columns(4), 0)
If Not IsError(KatM) Then
MsgBox KatM
Else
MsgBox "Nicht gefunden"
End If
End Sub


53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige