Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

wenn Zeichen in Zelle dann Makro

Forumthread: wenn Zeichen in Zelle dann Makro

wenn Zeichen in Zelle dann Makro
24.04.2016 19:47:39
Patrick

Guten Abend Allerseits,
Gerne würde ich um Eure Hilfe für folgende Problemstellung bitten.
Im angehängten Beispiel: https://www.herber.de/bbs/user/105196.xlsx
befinden sich in der Spalte B Werte zusammen mit einem Buchstaben (B=Billions, M=Millions).
Wäre es mit einem Makro möglich, die Spalte B auf die Buchstaben "B" bzw. "M" durchsuchen zu lassen, und wenn diese Buchstaben gefunden werden einerseits die zu entfernen (damit ich eine berechenbare Zahl erhalte) und andererseits beim einem "B" dieselbe Zelle mit 1000000 zu multiplizieren bzw. bei einem "M" dieselbe Zelle mit 1000 zu multiplizieren?
Danke und Beste Grüsse
Patrick

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn Zeichen in Zelle dann Makro
24.04.2016 20:33:41
Fennek
Hallo,
versuche für 'B' diesen Code, für 'M' ist es analog.

Sub test()
lr = cells(rows.count, "B").end(xlup).row
For i = 1 to lr
A = cells(i, "B")
If right(a, len(a)-1) = "B" then
A = left(a, len(a) -1)
A=a * 1000000
Cells(i, "B") = a
Endif
Next i
End sub
Mfg

Anzeige
AW: wenn Zeichen in Zelle dann Makro
24.04.2016 23:33:13
Patrick
Guten Abend Fennek,
Funktioniert leider nicht, kriege einen Debug-Fehler...
Grüsse
Patrick

in welcher Zeile? owT
24.04.2016 23:44:01
Fennek
Hi,
Bitte genauere Fehlermeldungen.
Mfh

AW: in welcher Zeile? owT
25.04.2016 15:24:01
Patrick
Hallo Fennek,
Bei "If right(a, len(a)-1) = "B" then"
Wäre super, wenn die Bedingung für "M" (If... ="M" then...) auch gleich miteinbezogen werden könnte.
Beste Grüsse
Patrick

Anzeige
AW: Wert von a?
25.04.2016 15:56:06
Fennek
Hallo,
soweit ich mich erinnern kann, ist 'a' der Werte der Zelle. Die Formel kann m.E. nur falsch sein, wenn 'a' leer ist. Sind die Parameter der Schleife richtig gesetzt und keine Leerfelder in der Spalte?
Wenn in a1 dein Wert steht ("23.1M"), versuche die Formel =wert(a1), oder in vba: val(cells(1,1)
Mfg

Anzeige
Bitte Variablen sauber deklarieren
25.04.2016 16:04:40
Michael
Hi zusammen,
wenn einmal a und einmal A verrechnet wird, kann's ja nicht gehen.
Außerdem war die Angabe im "right" verkehrt, da kommt alles ab dem 2. Zeichen raus.
So denn:
Option Explicit
Sub test()
Dim lr As Long, i As Long
Dim a As Variant
Dim kennz As String
lr = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To lr
a = Cells(i, "B").Text
kennz = Right(a, 1)
If kennz = "B" Then a = Left(a, Len(a) - 1): a = a * 10 ^ 6
If kennz = "M" Then a = Left(a, Len(a) - 1): a = a * 10 ^ 3
Cells(i, "B") = a
Next i
End Sub
Schöne Grüße,
Michael

Anzeige
AW: Bitte Variablen sauber deklarieren
25.04.2016 16:36:37
Patrick
Hallo Michael,
Danke für deinen Input! klappt wunderbar :-)
auch dir Fennek danke ich für deine Unterstützung!
Beste Grüsse
Patrick

Kleine Optimierung
26.04.2016 16:41:49
Michael
Hi zusammen,
hier noch leicht verbessert
Option Explicit
Sub test()
Dim lr As Long, i As Long
Dim a As Variant
Dim kennz As String
lr = Cells(Rows.Count, "B").End(xlUp).Row
For i = 1 To lr
a = Cells(i, "B").Text
kennz = Right(a, 1)
If Len(a) > 1 Then
a = Left(a, Len(a) - 1)
If kennz = "B" Then Cells(i, "B") = a * 10 ^ 6
If kennz = "M" Then Cells(i, "B") = a * 10 ^ 3
End If
Next i
End Sub

denn wenn keine Änderung erfolgt ist, muß ja auch nichts zurückgeschrieben werden.
Schöne Grüße,
Michael

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige