AddLabel: Unterschied zwischen den Versionen

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
K (Formatierung mit Vorlage)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
Folgendes VBA-Unterprogramm fügt in alle Charts einer Excel-Datei ein Textfeld / Label rechts oben mit dem aktuellen Monat (Januar, Februar ...) und Jahr (vierstellig)  ein.
Folgendes VBA-Unterprogramm '''SetDateInDiagram()''' fügt in alle Charts einer Excel-Datei ein Textfeld / Label rechts oben mit dem aktuellen Monat (Januar, Februar ...) und Jahr (vierstellig)  ein. Mit der Funktion '''CheckLabelExists(...)''' wird geprüft, ob ein Label mit dem Namen "Stand" bereits existiert.


{{Sourcecode| SetDateInDiagram|2=
<pre>
<pre>
Sub InsertALabelIntoAChart()
Private Function CheckLabelExists(argChart As Object, argName As String) As Boolean
  Dim obj As Object
  CheckLabelExists = False
  For Each obj In argChart.Shapes
    If UCase(obj.Name) = UCase(argName) Then CheckLabelExists = True: Exit Function
  Next obj
End Function
 
Sub SetDateInDiagram()
'
' Stand Makro
' Einfügen des Standes des Diagrames
'


Dim mySheet As Worksheet
Dim mySheet As Worksheet
Zeile 12: Zeile 29:
    
    
     Set myChart = mySheet.ChartObjects(1).Chart
     Set myChart = mySheet.ChartObjects(1).Chart
 
    If Not CheckLabelExists(myChart, "Stand") Then
    With myChart.Shapes.AddLabel(msoTextOrientationHorizontal, 535, 4, 144, 24)
      With myChart.Shapes.AddLabel(msoTextOrientationHorizontal, 380, 4, 144, 20)
      .Name = "Stand"
        .Name = "Stand"
      .TextFrame.Characters.Text = Format(Date, "mmm yyyy")
        .TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
      .TextFrame.Characters.Font.Size = 18
        .TextFrame.Characters.Font.Size = 12
      .TextFrame.Characters.Font.Bold = True
        .TextFrame.Characters.Font.Bold = True
    End With
        .TextFrame.HorizontalAlignment = xlHAlignRight
 
      End With
    Else
      myChart.Shapes("Stand").TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
      myChart.Shapes("Stand").TextFrame.HorizontalAlignment = xlHAlignRight
    End If
   End If
   End If
    
    
Zeile 26: Zeile 47:
End Sub
End Sub
</pre>
</pre>
 
}}
[[Kategorie:Sub]]
[[Kategorie:Sub]]
[[Kategorie:Basic]]
[[Kategorie:Basic]]
[[Kategorie:VBA]]
[[Kategorie:VBA]]
[[Kategorie:Excel]]
[[Kategorie:Excel]]

Aktuelle Version vom 8. Juli 2018, 06:08 Uhr

Folgendes VBA-Unterprogramm SetDateInDiagram() fügt in alle Charts einer Excel-Datei ein Textfeld / Label rechts oben mit dem aktuellen Monat (Januar, Februar ...) und Jahr (vierstellig) ein. Mit der Funktion CheckLabelExists(...) wird geprüft, ob ein Label mit dem Namen "Stand" bereits existiert.

Code: SetDateInDiagram
Private Function CheckLabelExists(argChart As Object, argName As String) As Boolean
 
  Dim obj As Object
 
  CheckLabelExists = False
 
  For Each obj In argChart.Shapes
    If UCase(obj.Name) = UCase(argName) Then CheckLabelExists = True: Exit Function
  Next obj
 
End Function

Sub SetDateInDiagram()
'
' Stand Makro
' Einfügen des Standes des Diagrames
'

Dim mySheet As Worksheet
Dim myChart As Chart

For Each mySheet In Worksheets

  If mySheet.ChartObjects.Count > 0 Then
  
    Set myChart = mySheet.ChartObjects(1).Chart
    If Not CheckLabelExists(myChart, "Stand") Then
      With myChart.Shapes.AddLabel(msoTextOrientationHorizontal, 380, 4, 144, 20)
        .Name = "Stand"
        .TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
        .TextFrame.Characters.Font.Size = 12
        .TextFrame.Characters.Font.Bold = True
        .TextFrame.HorizontalAlignment = xlHAlignRight
      End With
    Else
      myChart.Shapes("Stand").TextFrame.Characters.Text = Format(Date, "mmmm yyyy")
      myChart.Shapes("Stand").TextFrame.HorizontalAlignment = xlHAlignRight
    End If
  End If
  
Next
 
End Sub