Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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
Inhaltsverzeichnis

Diagramme in Diagrammblättern erkennen

Diagramme in Diagrammblättern erkennen
Meppi
Hallo,
ich bin noch VBA-Anfänger und hoffe, dass ihr mir helfen könnt.
Ich habe eine Excel-Datei mit einer Vielzahl von Reitern. Diese Reiter sind abwechselnd Arbeitsblätter und Diagrammblätter. Ich habe die Diagramme bewusst nicht als eingebettete Objekte in die Arbeitsblätter eingefügt.
Folgender VBA-Code soll nun automatisch die optimale Spaltenbreite anpassen, jedoch nur innerhalb der Arbeitsblätter. Die Diagrammblätter sollen davon unberührt bleiben:
Dim i As Long
For i = 1 To Sheets.Count
If Sheets(i).ChartObjects.Count = 0 Then
Sheets(i).Select
Cells.Select
Cells.EntireColumn.AutoFit
End If
Next i
End Sub
Das Problem: Leider werden die Diagramme in den Diagrammblättern nicht durch "ChartObjects" erkannt, d.h. das Makro läuft nicht problemlos durch. Kann mir jemand von euch weiterhelfen?
Vielen Dank im Voraus.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Diagramme in Diagrammblättern erkennen
{Boris}
Hi,
die Sheets-Auflistung enthält alle Blätter: Tabellenblätter und natürlich auch Diagrammblätter (und noch ein paar mehr).
Für die Tabellenblätter gibt es die Worksheets-Eigenschaft.
Aus der Hand:
For i = 1 To ThisWorkbook.WorkSheets.Count
Noch besser:
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets
Dann brauchst Du gar nicht zu prüfen, ob das Blatt ein Diagramm ist.
Grüße Boris
AW: Diagramme in Diagrammblättern erkennen
28.11.2011 08:50:33
Beverly
Hi,
auch wenn dir Boris bereits eine Lösung gepostet hat, hier noch die Möglichkeit wie man prüfen kann, ob es ein Diagrammblatt oder ein Tabellenblatt ist:
Sub BlaetterAnsprechen1()
Dim intBlatt As Integer
For intBlatt = 1 To Sheets.Count
If TypeName(Sheets(intBlatt)) = "Chart" Then
MsgBox "Diagrammblatt"
ElseIf TypeName(Sheets(intBlatt)) = "Worksheet" Then
MsgBox "Arbeitsblatt"
End If
Next intBlatt
End Sub

bzw. so:
Sub BlaetterAnsprechen2()
Dim objBlatt As Object
For Each objBlatt In Sheets
If TypeName(objBlatt) = "Chart" Then
MsgBox "Diagrammblatt"
ElseIf TypeName(objBlatt) = "Worksheet" Then
MsgBox "Arbeitsblatt"
End If
Next objBlatt
End Sub



Anzeige
AW: Diagramme in Diagrammblättern erkennen
28.11.2011 23:24:37
Meppi
Danke euch beiden. Habe eure Vorschläge gleich ausprobiert. Funktionieren beide einwandfrei. Danke nochmal und viele Grüße.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige