ich bin hier komplett neu und sehr unerfahren, was VBA betrifft und bin (mal wieder) mit meinem Latein am Ende.
Ich habe eine Masterdatei mit knapp 100 Tabellenblättern (Tabelle1, Tabelle2,...), in der Daten sind. Mithilfe von Thinkcell (ein AddIn) habe ich für jedes Tabellenblatt eine Grafik vorbereitet. Der nachfolgende Code würde für ein bestimmtes Tabellenblatt (hier bspw. Blatt "Tabelle1") mit den darin enthaltenen Daten im Bereich "B1:U11" die Grafik in der PowerPoint-Präsentation mit der Bezeichnung "1" aktualisieren, die Powerpoint speichern und schließen.
Jetzt kommt's zum Problem. Natürlich könnte ich den Code knapp 100 mal schreiben und 100 mal ausführen, macht die ganze Prozedur allerdings unhandlich.
Wie baue ich da alsoeine Schleife ein, damit Grafik 2 in PowerPoint sich auf Tabelle2 bezieht, Grafik 3 auf Tabelle 3,..., wenn ich zudem nicht die genaue Anzahl aller Tabellenblätter kenne (da diese mtl. variieren)?
oh gott, ich hoffe, ich hab euch nicht komplett verwirrt. Aber dennoch schonmal vielen Dank, falls ihr bis hier gelesen habt!
Sub UpdateChart()
'Zieh die für die Grafik zugrundeliegenden Daten im Tabellenblatt "1" (soll also um 1 ansteigen) im Bereich....
Dim rng As Excel.Range
Set rng = ActiveWorkbook.Sheets("Tabelle1").Range("B1:U11")
' Aktiviere das Thinkcell AddIn
Dim tcaddin As Object
Set tcaddin = Application.COMAddIns("thinkcell.addin").Object
Dim ppapp As Object
Set ppapp = New PowerPoint.Application
Dim pres As PowerPoint.Presentation
' PowerPoint Window nicht sichtbar
Set pres = ppapp.Presentations.Open( _
Filename:="C:\hier liegt die Powerpoint.pptx", _
Untitled:=msoTrue, _
WithWindow:=msoFalse)
' Die "1" entspricht der 1. Grafik in Powerpoint, die sich auf das Excel-Tabellenblatt "Tabelle1" bezieht und soll daher über eine Schleife "um eins wachsen"
Call tcaddin.UpdateChart(pres, "1", rng, False)
' Speichere die Powerpoint-Präsentation unter dem folgenden Pfad
pres.SaveAs ("C:\....\.pptx")
pres.Close
ppapp.Quit
End Sub
>>>