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

Amerikanisches Währungsformat umwandeln

Amerikanisches Währungsformat umwandeln
04.01.2013 17:20:50
Martin
Hallo,
jede Woche erhalte ich eine Excelliste, die ich auswerte. Problem: die auszuwertende Tabelle enthält Spalten mit als TEXT formatierten Einträgen in dieser Schreibweise: "$1,524.99" (also einem "überflüssigen" Dollarzeichen und amerikanischer Dezimaltrennung etc). Damit ich nun Summen ziehen kann, suche und ersetze ich jedes Mal das "$" sowie die "," durch 'nichts', um dann anschliessend die Punkte durch Kommas zu ersetzen. Im Ergebnis habe ich folgenden Zelleneintrag: "1524,99", womit ich dann rechnen kann.
Gibt es eine Möglichkeit, dieses Prozedere zu automatisieren?
Vielen Dank für Eure Hilfe!
Grüße,
Martin

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

Betreff
Datum
Anwender
Anzeige
AW: Amerikanisches Währungsformat umwandeln
04.01.2013 17:50:08
Sheldon
Hi Martin,
das hier gehört in ein Modul der betreffenden Mappe. Also VBA-Editor aufrufen mit Alt+F11. Dann findest Du irgendwo auf der linken Seite des Bildschirms den Namen Deiner Datei. Da klickst Du dann mit der rechten Maustaste drauf, Einfügen -> neues Modul. Dort fügst Du das dann ein:
Sub aaaa()
Dim Rng As Range, txTmp As String
For Each Rng In ActiveSheet.UsedRange
If Left(Rng, 1) = "$" Then
txTmp = Replace(Right(Rng.Value, Len(Rng.Value) - 1), ".", ";")
txTmp = Replace(txTmp, ",", "")
txTmp = Replace(txTmp, ";", ",")
Rng.Value = CDbl(txTmp)
End If
Next
End Sub
Im Prinzip kannst Du das Makro auch in einer separaten Datei speichern und jeweils diese öffnen, wenn Du das Makro brauchst.
Ach ja, ausführen geht dann (zumindest in V2007) über Entwicklertools -> Makros -> Name des Makros -> Ausführen. Oder über das Play-Symbol im VB-Editor.
Gruß
Sheldon

Anzeige
AW: Amerikanisches Währungsformat umwandeln
04.01.2013 18:25:12
Martin
wow, that was quick :)
Danke für die Antwort. Klappt so weit ganz prima, wenn ich das im VB-Editor einfüge.
Ein Problem habe ich leider übersehen: es gibt noch Einträge in diesem Stil: "($5,758.08)". Das sind negative Werte, also eigtl müsste ein "-" davorstehen. Wie sieht da der entsprechende If-Befehl aus um die auch entsprechend zu ersetzen? Sorry, VBA ist Neuland für mich.
Was ich nicht verstanden habe: wie kann ich Deinen Code als Detei speichern, um ihn dann jeweils auf eine neue Excel-Tabelle anzuwenden?
Danke!

AW: Amerikanisches Währungsformat umwandeln
04.01.2013 19:43:18
Martin
...

AW: Amerikanisches Währungsformat umwandeln
04.01.2013 19:48:20
Hajo_Zi
Hallo Martin,
Du solltest mal erklären woran man ein negativen Wert erkennt für mich sehen die Einträge $1,524.99 $5,758.08 gleich aus. Der zweite soll aber negativ sein. Warum?
Gruß Hajo

Anzeige
AW: Amerikanisches Währungsformat umwandeln
04.01.2013 19:53:38
Martin
Hi Hajo,
der zweite Wert steht in Klammern. Das diese Werte in Klammern nun negative Zahlen sind, ist eine rein willkürliche Setzung. War nicht meine Idee...

AW: Amerikanisches Währungsformat umwandeln
04.01.2013 19:55:37
Sheldon
Hi Martin,
dann so:
Sub aaaa()
Dim Rng As Range, txTmp As String
For Each Rng In ActiveSheet.UsedRange
Select Case Left(Rng, 1)
Case "$"
txTmp = Replace(Right(Rng.Value, Len(Rng.Value) - 1), ".", ";")
txTmp = Replace(txTmp, ",", "")
txTmp = Replace(txTmp, ";", ",")
Rng.Value = CDbl(txTmp)
Case "("
If Mid(Rng, 2, 1) = "$" Then
txTmp = Replace(Right(Rng.Value, Len(Rng.Value) - 2), ".", ";")
txTmp = Replace(txTmp, ",", "")
txTmp = Replace(txTmp, ";", ",")
txTmp = "-" & Left(txTmp, Len(txTmp) - 1)
Rng.Value = CDbl(txTmp)
End If
End Select
Next
End Sub

Das mit dem separat speichern: Du speicherst die Datei mit dem Makro drin ab. Wenn Du nun eine neue Datei zum Konvertieren von Dir hast, rufst Du sie wieder auf, gehst zurück in die zu konvertierende Datei und startest dann das Makro. Wichtig ist nur, dass das Tabellenblatt gerade aktiv ist, also im Vordergrund, wenn Du das Makro startest.
Gruß
Sheldon

Anzeige
AW: Amerikanisches Währungsformat umwandeln
04.01.2013 20:42:42
Martin
Sheldon, das klappt, vielen Dank!
Ich habe das Ganze jetzt als Addin hinterlegt und die Ribbonbar um eine neue Registerkarte ergänzt. Gruppen kann ich da auch anlegen, nur einen Button kriege ich nicht hin, der die Funktion dann aufrufen würde. Hat da jemand einen Tipp?

AW: Amerikanisches Währungsformat umwandeln
04.01.2013 22:12:54
Martin
hat sich erledigt, ich hab's hinbekommen. danke für eure unterstützung!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige