Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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

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

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

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

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

399 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige