Excel VB Zeichen Prüfen

Ich benötige etwas in VB um in einer Reihe das Zeichen „P“ zu finden und anschließend soll es in der selben Reihe nach dem Zeichen letzten vorkommenden „L“ suchen.
Zum Schluss den Abstand zwischen P und L zählen und in einer Zelle(z.B. A6) ausgeben.

Könnte mir dabei jemand helfen? VB ist nicht meine Baustelle…
Danke.

MfG Marabunta

Hey Marbunta,
In vb kann ich dir nicht helfen ich ware aber in der lage eine anwendung (.exe) zu schreiben das das kann.
Mfg

Revulaner

Tut mir leid, da kann ich nicht helfen.

Gruß
Thomas

Was verstehst Du unter einer „Reihe“? Eine Zeile, eine Spalte oder eine Zeichenkette, die in einer Zelle steht?
Zum Auffinden von Zeichen in Zeichenketten gibt es den Befehl INSTR. Mit diesem Befehl kannst Du in einer Zeichenkette nach dem Vorkommen von Zeichen suchen. Er gibt 0 zurück, wenn das Zeichen nicht gefunden wurde oder eine Zahl, die die Position des Vorkommens darstellt. Alles weitere findest Du in der EXCEL-VBA-Hilfe.
Gruß Dieter

z.B. Gesucht wird in Zeile „10“ zwischen „B“ und „H“ das erste Zeichen P. Angenommen es wird bei „C“ gefunden, dann wird nach dem letzten „L“ gesucht. Angenommen angenommen bei „F“, dann wird die Differenz der beiden zusammengezählt bei „I“ ausgegeben:
C-D-E-F -> 4

Hallo,

da kann ich dir leider nicht helfen.

Liebe Grüße

Tanja

Hallo Marabunta,
sorry aber VB ist genauso wenig meine Baustelle.
Grüße
Christin

Das erste „P“ in einer Zeichenkette zu finden ist recht einfach:

=SUCHEN(„P“;A1:E1)

allerdings finde ich nichts um das letzte „L“ zu suchen,

Gruss

Hi Marabunta,

da kann ich dir leider nicht weiterhelfen.

Gruß
Werner

hallo marabunta,

deinem beispiel in deiner antwort an dieter kern entspricht folgendes sub:

Sub zaehlen()
With Range(„a10:h10“)
Range(„i10“) = .Find(„L“, searchdirection:=xlPrevious).Column - .Find(„P“).Column
End With
End Sub

aber das ist wahrscheinlich noch nicht alles, oder?

ascan

ich sehe gerade, das ergebnis soll 4 sein; also:

Sub zaehlen()
With Range(„a10:h10“)
Range(„i10“) = .Find(„L“, searchdirection:=xlPrevious).Column - .Find(„P“).Column + 1
End With
End Sub

das ist für alle zeilen:

Sub zaehlen()
Dim spalten, ziel, zelle, index
With ActiveSheet.UsedRange
spalten = .Columns.Count
Set ziel = .Resize(, 1).Offset(, spalten)
For Each zelle In .Resize(, 1)
With zelle.Resize(, spalten)
index = index + 1
On Error Resume Next
ziel.Item(index) = .Find(„L“, searchdirection:=xlPrevious).Column - .Find(„P“).Column + 1
On Error GoTo 0
End With
Next zelle
End With
End Sub

Tut mir leid, VBA ist nicht mein Thema.
Gruß Maria

Hallo,

bei VB muss ich passen.

Frank Seiler

Grüezi Marabunta

Ich benötige etwas in VB um in einer Reihe das Zeichen „P“ zu
finden und anschließend soll es in der selben Reihe nach dem
Zeichen letzten vorkommenden „L“ suchen.
Zum Schluss den Abstand zwischen P und L zählen und in einer
Zelle(z.B. A6) ausgeben.

Warum willst/musst Du das mit VBA ermitteln?

Die folgende Formel in A6 errechnet dir genau diese Differenz:

=SUMMENPRODUKT(MAX(($B$10:blush:H$10="L")\*(SPALTE($B$10:blush:H$10))))-VERGLEICH("P";$B$10:blush:H$10;0)

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -