AddLabel: Unterschied zwischen den Versionen

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
K (Verbessertes Programm)
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.


<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 28:
    
    
     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
    
    

Version vom 2. November 2016, 09:55 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.

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