Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen

Währungsformat im VBA Code | Herbers Excel-Forum


Betrifft: Währungsformat im VBA Code von: Ralf
Geschrieben am: 06.02.2012 11:19:15

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

  

Betrifft: AW: Währungsformat im VBA Code von: Rudi Maintaire
Geschrieben am: 06.02.2012 11:38:18

Hallo,
Selection.NumberFormat = "#,##0.00 €;[Red]#,##0.00 €"

Gruß
Rudi


  

Betrifft: AW: Währungsformat im VBA Code von: Ralf
Geschrieben am: 06.02.2012 12:57:55

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 < 14 And blnNein Then Cells(lngRow + 1, 6) = "Nein"
    End Select
  End If

End Sub

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


  

Betrifft: DataLabels von: Rudi Maintaire
Geschrieben am: 06.02.2012 15:07:43

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


  

Betrifft: AW: DataLabels von: Ralf
Geschrieben am: 06.02.2012 15:15:08

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


  

Betrifft: AW: DataLabels von: Rudi Maintaire
Geschrieben am: 06.02.2012 15:36:14

Hallo,
wenn du die Mappe hochladen würdest, könnte ich das testen.

Gruß
Rudi


  

Betrifft: AW: DataLabels von: Ralf
Geschrieben am: 06.02.2012 15:50:22

Hallo Rudi,

hier ist sie:
https://www.herber.de/bbs/user/78760.xlsm

Ich musste erst noch einige Daten entfernen.

Viele Grüße

Ralf


  

Betrifft: AW: DataLabels von: Ralf
Geschrieben am: 08.02.2012 13:35:41

Hallo Rudi,

hast Du die Mappe bekommen?

Bitte um Rückmeldung.

Viele Grüße

Ralf


Beiträge aus den Excel-Beispielen zum Thema "Währungsformat im VBA Code"