Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro zur zellenweisen Änderung des Währungsformats
#1
Hallo liebe Leute,

ich habe eine Frage zu Makros und hoffe jemand kann mir helfen.

Kurze Zusammenfassung meiner Vorstellung:

Ich habe eine Dropdown-Liste. Aus dieser Liste kann man verschiedene Währungen auswählen. Sobald eine Währung gewählt wurde möchte ich, dass ein Makro direkt alle von mir bestimmten Zellen (das sind mal größere Blöcke und manchmal einzelne Zellen) in das jeweilige Währungsformat ändert. Der Hintergrund ist ein sheet zur Berechnung von Reisekosten und das Ding ist einfach ein Monster. Bei so vielen Zellen würde es einfach echt lange dauern, alles manuell zu ändern.

Als Währungen bräuchte ich Euro, US-Dollar, Pfund, Schweizer Franken, Dänische Kronen und Hong Kong Dollar.

Ich habe bereits ähnliche Beiträge gefunden und habe auch mehrere Stunden versucht, die Lösungsansätze nachzuvollziehen.
Aber leider bin ich kein wirklicher Excel-Experte. Paar if-Formeln klappen gerade noch so.

Wäre cool, wenn mir jemand weiterhelfen kann, oder vielleicht einen Code vorgeben könnte.

Vielen Dank im Voraus!

MfG Kutschi
Antworten Top
#2
Hi,

(07.04.2016, 11:18)Kutschi schrieb: Wäre cool, wenn mir jemand weiterhelfen kann, oder vielleicht einen Code vorgeben könnte.

Per VBA-Makro-Code ist das kein Problem.

Wenn Dir jemand einen Code erstellt, ist der Code abgestimmt auf die Datei, die der Helfer sich erzeugt hat, das sind mit Sicherheit nicht dieselben Zell-Adressen, wie in Deiner Datei, das müßtest Du also anpassen.

Besser wäre es, die Helfer hätten Deine Datei.
Also stelle bitte (D)eine (Beispiel-)Tabelle als Excel-Datei zur Verfügung oder stelle die relevanten Ausschnitte hier dar, siehe die als Wichtige Themen: markierten Forums-Beiträge.
Deine Mustertabelle sollte sensible Daten anonymisiert haben. Vom Aufbau her muss sie aber deinem Original gleichen.
Die farbigen Texte sind anklickbare Links:

Hier steht, wie es geht:
Beitrag 1 WICHTIG: Tabellenausschnitte und VBA-Codes im Forum einstellen
Beitrag 2 WICHTIG: Arbeitsmappen zur Verfügung stellen

Eine Bitte:
Anstatt Screenshots ist eine Datei oder ein Ausschnitt besser!
"Du gehst ja auch nicht in die Werkstatt und gibst ein Foto Deines kaputten Autos ab!"
Antworten Top
#3
Danke für die schnelle Antwort Ralf,

leider ist es mir untersagt jegliche Dateien aus unserem betrieblichen Intranet in öffentlichen Foren hochzuladen. Selbst wenn sämtliche sensiblen Daten unerkenntlich gemacht worden wären. Zusätzlich ist es auch nicht möglich Programme von Drittanbietern herunterzuladen. Wir haben sehr strikte Sicherheitsvorschriften was das angeht.

Ich weiß, dass das die Arbeit nicht erleichtern wird. Aber die Zellen, die per Makro geändert werden sollen, kann ich doch sicherlich auch selbst dann einfügen bzw. auf mein Sheet abändern.

Tut mir wirklich Leid, dass ich mehr Umstand machen muss, als nötig, aber ich will natürlich auch nicht gegen meine Vorschriften verstoßen.

Zu Info vielleicht noch:

Das Sheet hat 12 Mappen. Für jeden Monat eine. Ich vermute mal, wenn ich das Makro im Januar einfüge und dann Januar kopiere und in Februar abändere, dass das Makro dann übernommen wird. Falls nicht kann mich jemand gerne eines besseres belehren :D

Beste Grüße
Kutschi
Antworten Top
#4
Hi,

(07.04.2016, 12:59)Kutschi schrieb: Das Sheet hat 12 Mappen. Für jeden Monat eine. Ich vermute mal, wenn ich das Makro im Januar einfüge und dann Januar kopiere und in Februar abändere, dass das Makro dann übernommen wird.

Befasse Dich mal mit der Nomenklatur: Eine Mappe besteht aus einem oder mehreren Arbeitsblättern/Tabellenblättern/Sheets.

Wenn das Makro allgemein formuliert ist, klappt das durch kopieren, ansonsten nicht. Dann kann aber auch einfach das allgemeine Makro ein Mal in "DieseArbeitsmappe" gestellt werden, das dann per Schaltfläche aus jedem Blatt aufgerufen wird und die Änderungen nur im aktuellen Blatt durchführt.

Wenn Du die Datei nicht als Musterdatei zeigen kannst, dann schreibe mal auf:
  • in welcher Zelle ist die Dropdownliste?
  • wie sind die Begriffe in der Dropdown-Liste?
  • in welchen Zellen soll die Währung geändert werden?
Antworten Top
#5
Tut mir Leid, wenn ich die falschen Begriffe verwende. Aber werde es mir auf jeden fall für die Zukunft merken :D

Ich lade jetzt einfach mal eine Liste hoch in der die gleichen Zellen in gelb markiert sind, wie in der richtigen Liste.
Das sollte es einfacher machen, da die Zellen bis Zeile 100 gehen. Und gleichzeitig sollte es mir keine Schwierigkeiten verursachen :D


.xlsx   Testmappe_Forum.xlsx (Größe: 27,88 KB / Downloads: 5)

Danke für die Unterstützung!

Liebe Grüße
Antworten Top
#6
Hallo!
Weise dem Dropdown folgendes Makro zu:
(hat mich im übrigen ganz schön Mühe gekostet, die vermaledeiten Ländercodes herauszufinden, kostet einen HongKong-Dollar Wink)

Sub Dropdown1_BeiÄnderung()
Dim curRange As Range
Set curRange = Range("E14:AI32,AK14:AK32,E37:AI48,AK37:AK48,E52:AI63,AK52:AK63,E67:AI67,AK67")
With curRange
   Select Case Range("H2")
      Case 1: .NumberFormat = "#,##0.00 [$€-407]"
      Case 2: .NumberFormat = "[$$ -409]#,##0.00"
      Case 3: .NumberFormat = "[$£ -809]#,##0.00"
      Case 4: .NumberFormat = "[$CHF -807]#,##0.00"
      Case 5: .NumberFormat = "[$kr. -406]#,##0.00"
      Case 6: .NumberFormat = "[$$ -3C09]#,##0.00"
   End Select
End With
End Sub

Du musst evtl. noch prüfen, ob das Währungszeichen vor oder hinter der Zahl stehen muss.

Anmerkung:
Die Ländercodes brauchst Du nicht unbedingt, da die Zeichen alle im ASCII-Satz vorhanden sind.
Sollte es dich mal nach Kasachstan verschlagen, ist es gut zu wissen, dass man die kasachischen Tenge mittels #,##0.00 [$?-43F] darstellt.
Das ? wird dann automatisch in  umgewandelt …

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Mit dem Tenge ists noch blöder:
.NumberFormat = "#,##0.00 [$" & ChrW(8376) & "-43F]"

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Hammer!

Funktioniert genau so, wie gedacht. Vielen, vielen Dank dafür :)

Wäre froh, wenn ich das auch so drauf hätte. Glaube ich muss mich mal etwas mehr damit auseinandersetzen :D

Hast mir auf jeden fall sehr geholfen. Hätte ich einen Hong Kong Dollar dann würde ich dir einen geben :D :P

Danke nochmal!

Liebe Grüße
Kutschi
Antworten Top
#9
Danke fürs Feedback.
Ich habe noch zwei Währungssymbole für den HongKong-Dollar gefunden:
und 
Entsprechen Chrw(22291) und Chrw(20803)

Aber dies nur am Rande …

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste