Microsoft Excel

Herbers Excel/VBA-Archiv

1000er-Trennzeichen bei bestimmter Zellbedingung

Betrifft: 1000er-Trennzeichen bei bestimmter Zellbedingung von: Ich
Geschrieben am: 30.07.2014 15:44:55

Hallo @ all :)

Ich bräuchte einen VBA Code und bitte um Hilfe!

Zum Anliegen: Ein Tabellenblatt besteht aus einer Gewinn-und Verlustrechnung (GuV) - ausschließlich Zahlen (Plus- oder Minus-Werte) pro Zelle im Sheet. Nun sollen alle Zellen des gesamten Sheets nach einer bestimmten Zellbedingung geprüft und ggf. angepasst werden:

1. Die Zellen des gesamten Sheets sollten erst einmal auf eine Dezimalstelle=3 (ohne 1000er-Trennzeichen) formatiert werden

2. Anschließend sollen alle Werte, welche >1000 sowie alle Werte <-1000, durch 1000 geteilt werden und zusätzlich den Haken in der Zellformatierung für "1000er-Trennzeichen verwenden" erhalten

Das sollte es eigentlich schon gewesen sein. Leider bekomme ich das weder mit einer WENN-Funktion oder dergleichen gebacken :(

Freue mich daher auf Voschläge und Danke vorab!

Gruß
Ben

  

Betrifft: Doppelt und immer noch unverständlich! (owT) von: EtoPHG
Geschrieben am: 30.07.2014 16:25:12




  

Betrifft: AW: Doppelt und immer noch unverständlich! (owT) von: Ich
Geschrieben am: 30.07.2014 16:51:51

Hallo zusammen :)

Was erstmal wie "doppelt" oder "dreifach" scheint, hat den einfachen Vorteil das die Werte, welche größer als 1000, sowie solche Werte die kleiner -1000 sind, 1000er-Trennzeichen nicht korrekt darstellen: Grund hierfür liegt darin, das beispielsweise ein Tausender Wert wie folgt ausschaut: 1234,567890 (gerechnet wird also mit allen Nachkommzahlen (und das soll auch so sein)).

Das gesamte Blatt soll ja mit einer Dezimale=3 dargestellt werden (macht den Beispielwert 1234,567).

1000er-Trennzeichen würden in diesem Fall falsch gesetzt, da die Zahl dann so ausschauen würde: 1234,567,890

Um die Ansicht also zu verbessern, sollen nur die Werte mit der o.g. Bedingung durch 1000 geteilt werden (macht also eine Darstellung von 1,234). Wenn nun 1000er-Trennzeichen für diese Werte angewendet werden haben wir die Zahl 1,234,567

Und genau diese Darstellung bräuchte ich :) Einzeln natürlich kein Problem zu realisieren, allerdings scheitere ich bei der Automation per Makro. Schließlich soll die Bedingung auf alle Zellen angewandt werden.
Würde mich freuen, wenn's klappt.
Schon mal Danke.


  

Betrifft: AW: Doppelt und immer noch unverständlich! (owT) von: Spenski
Geschrieben am: 30.07.2014 16:57:53

Mit doppelt und dreifach ist eher gemeint das du 3 thread für das Thema angelegt hast

Gruss


  

Betrifft: AW: Doppelt und immer noch unverständlich! (owT) von: Ich
Geschrieben am: 30.07.2014 17:01:24

Hallo Spenski,

achso. Verstehe! Nur war ich das gar nicht :/ Habe nur auf die Betreffquotes geantwortet... Erstellt hab ich die nicht!

Ist ja aufregend hier :)


  

Betrifft: AW: Trennzeichen?! von: Michael
Geschrieben am: 30.07.2014 17:29:20

Hallo Ben,

also gut, dann eben HIER.

Ich habe den Eindruck, Dein Problem liegt wo ganz anders: Tausendertrennzeichen sind standardmäßig PUNKTE und keine Kommas. So, wie Du Dein Beispiel darstellst, mit 123,456,000 erscheint das bei mir nämlich nicht!

Das sollte eine Geschichte mit der Internationalisierung sein, denn die Amis verwenden ein TausenderKOMMA, dafür aber einen Dezimalpunkt.

Schau mal in den derartigen Einstellungen nach, wo auch immer die sein mögen, ich mag jetzt nicht suchen.

Google-Stichpunkte etwa: Excel, spracheinstellung, tausendertrennzeichen oder so.

Gruß,

Michael


  

Betrifft: AW: Trennzeichen?! von: Ich
Geschrieben am: 30.07.2014 18:08:13

Hallo Michael,

da hast du recht. Es geht etwas um die internationale Darstellung, da auch "Amis" mit den Dateien arbeiten werden. Das Problem der Umwandlung von Kommata zu Punkten und umgekehrt ist bereits geklärt.

Nun geht es halt nur noch um die Darstellung der Werte über 1000 und unter -1000. Daher mein Anliegen :)

Ich habe meines Erachtens schon alle Fälle integriert und bräuchte halt nur diesen letzten Prozessablauf als VBA.

Wie schaut's aus, ist das überhaupt möglich?

Also:
1. Durchsuche alle Zellen mit der Bedingung: Zellwert<-1000 und Zellwert>1000
2. bei erfüllter Bedingung (Zelle) dividiere Zellenwert durch 1000
3. und formatiere die Zelle mit TRUE für 1000er-Trennzeichen

Gruss
Ben


  

Betrifft: AW: Trennzeichen?! von: Michael
Geschrieben am: 30.07.2014 19:04:59

Hallo Ben,

meinst du etwa so:

Sub Formatierung()

' Habe mit einem Bereich getest:
'   Makrorekorder:
 '    Range("A2:C11").Select
 '    Selection.Style = "Comma"
 '    Selection.NumberFormat = _
 '       "_-* #,##0.000 _€_-;-* #,##0.000 _€_-;_-* ""-""?? _€_-;_-@_-"
' Ende Makrorekorder

' ich gebe dem Bereich A2:C11 nun den Namen "Zu_Konvertieren" und
' gehe mit for each drüber:

' Aufzeichnung nachbearbeitet, Abfrage eingefügt:
  For Each zelle In Range("Zu_Konvertieren")
    If Abs(zelle.Value >= 1000) Then
      zelle.Value = zelle.Value / 1000
      With zelle
        .Style = "Comma"
        .NumberFormat = _
        "_-* #,##0.000 _€_-;-* #,##0.000 _€_-;_-* ""-""?? _€_-;_-@_-"
      End With
     End If
   Next zelle
End Sub
Das .NumberFormat kannst Du ja noch recherchieren, aber, wie gesagt, in einer Tabelle einfach Daten zu ändern, das nimmt Dir jeder Wirtschaftsprüfer übel!!!

Ich würde wetten, daß Du da irgendeinen dicken Denkfehler drinhast.

Außerdem wäre es hilfreich, Begleitumstände wie die internationale Geschichte von vornherein zu erwähnen.

Gruß,

Michael


  

Betrifft: AW: Trennzeichen?! Nachtrag von: Michael
Geschrieben am: 30.07.2014 19:35:05

den Namen habe ich *händisch* vergeben, und eigentlich isser gar nicht nötig, Du kannst in der Zeile

For Each zelle In Range("Zu_Konvertieren")

als Range eingeben (oder zuvor ermitteln), was Du brauchst...


  

Betrifft: AW: Trennzeichen?! Nachtrag von: Ich
Geschrieben am: 30.07.2014 21:03:05

Hallo Michael,

super. Das schaut gut aus. Funktioniert zwar noch nicht, aber nehme ich als Vorlage und passe das bei.

Dank dir.

PS: Keine Sorge. Das geht nicht zum Wirtschaftsprüfer!

Gruss
Ben


 

Beiträge aus den Excel-Beispielen zum Thema "1000er-Trennzeichen bei bestimmter Zellbedingung"