Anzeige
Archiv - Navigation
1248to1252
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
Währungsformat im VBA Code
Ralf
Hallo Forum,
ich habe mit dem Makrorekorder einen Code aufgezeichnet.
Nach Formatierung eines Zellbereiches steht u. a. folgendes im Code:
Selection.NumberFormat = "$#,##0.00_);[Red]($#,##0.00)"
Die Zellen sollen aber in dieser Darstellung angezeigt werden:
#.##0,00 € bzw. [Red]-#.##0,00 €
Was mache ich falsch?
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Währungsformat im VBA Code
06.02.2012 11:38:18
Rudi
Hallo,
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Gruß
Rudi
AW: Währungsformat im VBA Code
06.02.2012 12:57:55
Ralf
Hallo Rudi,
vielen Dank für die Hilfe.
Ich hatte es genauso händisch formatiert, mit dem Unterschied, dass ich Punkt und Komma vertauscht habe. Jetzt funktioniert es bestens.
Du hattest mir letzte Woche mit einem Code sehr weitergeholfen:
Zur Erinnerung:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngRow As Long, i As Long, blnNein
If Target.Count = 1 And Target.Column = 6 Then
lngRow = Target.Row
Select Case lngRow
Case 8 To 14
blnNein = LCase(Target) = "nein"
Sheets("Hilfstabelle").Columns(lngRow - 3).Hidden = blnNein
Sheets("Diagramm").Columns(lngRow - 3).Hidden = blnNein
Sheets("Diagramm").Rows(lngRow + 22).Hidden = blnNein
If blnNein Then
Range(Cells(lngRow, 3), Cells(lngRow, 4)) = 0
End If
With Tabelle2
.Range(.Cells(lngRow, 3), .Cells(lngRow, 4)).NumberFormat = _
.Range("WertFormat").NumberFormat
End With
If lngRow 

Jetzt möchte ich Deinen Code mit dem folgenden kombinieren:
Sub datalabels_formatieren()
If Sheets("Daten").Range("F14") = "Ja" Then
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(12).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(11).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).Points(10).DataLabel.Text = "=Daten!$E$14"
ActiveChart.SeriesCollection(2).Points(9).DataLabel.Text = "=Daten!$E$13"
ActiveChart.SeriesCollection(2).Points(8).DataLabel.Text = "=Daten!$E$12"
ActiveChart.SeriesCollection(2).Points(7).DataLabel.Text = "=Daten!$E$11"
ActiveChart.SeriesCollection(2).Points(6).DataLabel.Text = "=Daten!$E$10"
ActiveChart.SeriesCollection(2).Points(5).DataLabel.Text = "=Daten!$E$9"
ActiveChart.SeriesCollection(2).Points(4).DataLabel.Text = "=Daten!$E$8"
ActiveChart.SeriesCollection(2).Points(3).DataLabel.Text = "=Daten!$E$7"
ActiveChart.SeriesCollection(2).Points(2).DataLabel.Text = "=Daten!$C$6"
ActiveChart.SeriesCollection(2).Points(1).DataLabel.Text = "=Daten!$C$3"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F14") = "Nein" Then
'Bei Ausblenden von Spalte "K" im Blatt Diagramm (Zelle "F14" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(11).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(10).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F13") = "Nein" Then
'Bei Ausblenden von Spalte "J" im Blatt Diagramm (Zelle "F13" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(10).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(9).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F12") = "Nein" Then
'Bei Ausblenden von Spalte "I" im Blatt Diagramm (Zelle "F12" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(9).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(8).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F11") = "Nein" Then
'Bei Ausblenden von Spalte "H" im Blatt Diagramm (Zelle "F11" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(8).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(7).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F10") = "Nein" Then
'Bei Ausblenden von Spalte "G" im Blatt Diagramm (Zelle "F10" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(7).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(6).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F9") = "Nein" Then
'Bei Ausblenden von Spalte "F" im Blatt Diagramm (Zelle "F9" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(6).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(5).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F8") = "Nein" Then
'Bei Ausblenden von Spalte "E" im Blatt Diagramm (Zelle "F8" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(5).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(4).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
If Sheets("Daten").Range("F7") = "Nein" Then
'Bei Ausblenden von Spalte "D" im Blatt Diagramm (Zelle "F7" im Blatt Daten wird auf "Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
Sheets("Diagramm").Select
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.SeriesCollection(2).Points(4).DataLabel.Text = "=Daten!$D$6"
ActiveChart.SeriesCollection(2).Points(3).DataLabel.Text = "=Daten!$E$15"
ActiveChart.SeriesCollection(2).DataLabels.Select
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
Else
End If
End Sub Wie kann ich diesen nun in Deinen ursprünglichen integrieren bzw. kann ich von Deinem Code darauf verweisen mit Call datalabels_formatieren?
Vielen Dank im Voraus für Deine Hilfe.
Gruß
Ralf
Anzeige
DataLabels
06.02.2012 15:07:43
Rudi
Hallo,
ungetestet:
Sub DataLabels_formatieren()
Dim i As Integer
If Sheets("Daten").Range("F14") = "Ja" Then
With Sheets("Diagramm").ChartObjects("Diagramm 1").Chart.SeriesCollection(2)
.Points(12).DataLabel.Text = "=Daten!$D$6"
.Points(11).DataLabel.Text = "=Daten!$E$15"
.Points(10).DataLabel.Text = "=Daten!$E$14"
.Points(9).DataLabel.Text = "=Daten!$E$13"
.Points(8).DataLabel.Text = "=Daten!$E$12"
.Points(7).DataLabel.Text = "=Daten!$E$11"
.Points(6).DataLabel.Text = "=Daten!$E$10"
.Points(5).DataLabel.Text = "=Daten!$E$9"
.Points(4).DataLabel.Text = "=Daten!$E$8"
.Points(3).DataLabel.Text = "=Daten!$E$7"
.Points(2).DataLabel.Text = "=Daten!$C$6"
.Points(1).DataLabel.Text = "=Daten!$C$3"
.DataLabels.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
End With
End If
For i = 7 To 14
With Sheets("Daten")
If .Cells(i, 6) = "Nein" Then
'Bei Ausblenden von Spalte "K" im Blatt Diagramm (Zelle "F14" im Blatt Daten wird auf " _
Nein" gestellt)
'sollen die Datenbeschriftungen so angepasst werden:
With Sheets("Diagramm").ChartObjects("Diagramm 1").Chart.SeriesCollection(2)
.Points(i - 3).DataLabel.Text = "=Daten!$D$6"
.Points(i - 4).DataLabel.Text = "=Daten!$E$15"
.DataLabels.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"
End With
End If
End With
Next i
End Sub

kann ich von Deinem Code darauf verweisen mit Call datalabels_formatieren?
Kannst du.
Gruß
Rudi
Anzeige
AW: DataLabels
06.02.2012 15:15:08
Ralf
Hallo Rudi,
ich habe es mir schon gedacht, dass der Code wieder auf wenige Zeilen zusammengedampft werden kann.
Leider funktioniert es nicht.
Es gibt einen Laufzeitfehler 1004 "Ungültiger Parameter" für diese Zeile:
.Points(12).DataLabel.Text = "=Daten!$D$6"
Ich habe meinen (viel zu langen) Code mittlerweile so weit, dass er funktioniert. Allerdings recht langsam, da ja immer alle Möglichkeiten durchgespielt werden müssen.
Es wäre nett, wenn Du nochmals auf Deine Lösung schauen könntest, ansonsten muss ich es bei meiner Lösung belassen.
Viele Grüße
Ralf
AW: DataLabels
06.02.2012 15:36:14
Rudi
Hallo,
wenn du die Mappe hochladen würdest, könnte ich das testen.
Gruß
Rudi
Anzeige
AW: DataLabels
08.02.2012 13:35:41
Ralf
Hallo Rudi,
hast Du die Mappe bekommen?
Bitte um Rückmeldung.
Viele Grüße
Ralf
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge