Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro auf alle Tabellenblätter laufen lassen

Makro auf alle Tabellenblätter laufen lassen
Teggnodd
Hallo,
ich habe ein digitales Oszilloskop mit dem ich alle paar Minuten Werte aufnehmen will, dazu benutze ich Excel. Ich habe mir schon ein kleines Makro zum auslesen der Werte erstellt, hat auch ganz gut Funktioniert. Nun möchte ich aber auch ein Diagramm zu den Werten haben. Dazu habe ich mir ein Makro aufgezeichnet, dass funktioniert aber nur für das erste Tabellnblatt und auf die restlicheen wird es nicht übernommen. Meine Frage ist nun wie bekomme ich das auf alle Tabellenblätter hin.
Hier mal die beiden Makros:
Option Explicit
Dim DataBuffer1(0 To 5000) As Long
Dim DataBuffer2(0 To 5000) As Long
Private Declare

Sub ReadCh1 Lib "DSOLink.dll " (Buffer As Long)
Private Declare 

Sub ReadCh2 Lib "DSOLink.dll " (Buffer As Long)

Sub Auslesen()
Dim i As Long
ReadCh1 DataBuffer1(0)
ReadCh2 DataBuffer2(0)
With ActiveSheet
For i = 0 To 4098
.Cells(i + 1, 2) = DataBuffer1(i)
.Cells(i + 1, 3) = DataBuffer2(i)
Next i
End With
Application.OnTime Now + TimeValue("00:00:5"), "Auslesen"
Sheets.Add
End Sub

-----
Sub Diagramm()
' Diagramm Makro
' Tastenkombination: Strg+d
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='Tabelle '!$C$4:$C$4099"
ActiveChart.SeriesCollection(1).Values = "='Tabelle '!$B$4:$B$4099"
ActiveWindow.ScrollRow = 1
Columns("B:B").Select
Selection.ClearContents
Range("C1").Select
Selection.ClearContents
Columns("C:C").Select
Selection.ClearContents
Range("D5").Select
ActiveWorkbook.Save
Range("H2").Select
End Sub

Anzeige
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 11:19:06
guentherh
Auf den ersten Blick gehts nur um die Datenquelle des Diagrams
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='" & ActiveSheet.name & "'!$C$4:$C$4099"
ActiveChart.SeriesCollection(1).Values = "='" & ActiveSheet.name & "'!$B$4:$B$4099"
Gruß,
Günther
Anzeige
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 11:31:48
Teggnodd
Danke für die schnelle Antwort aber es hat leider nicht funktioniert. Das Diagramm wird immer noch nur auf dem ersten Tabellenblatt angezeigt.
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 11:41:42
guentherh
Ich hatte es so verstanden, dass das Makro nur auf dem ersten Tabellenblatt funktioniert
Meinst Du dass das Makro alle Tabellenblätter in einem Rutsch mit dem Diagramm versorgen soll?
Sub WirFordernDiagrammeFuerAlle()
For each WS in activeworkbook.worksheets
WS.activate
call Diagramm
next
End Sub
Gruß,
Günther
Anzeige
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 12:07:43
Teggnodd
Also es ist so, ich lese immer neue Werte aus und diese werden immer in einem neuten Tabellenblatt abgelegt. zu jedem Tabellenblatt mit den jeweils neuen Werten, soll ein Diagramm dazu aufgenommen werden.
Bei mir ist es aber im Moment so, dass mir nur ein Diagramm im ersten Tabellenblatt angezeigt wird, nicht aber für die neuen Werte in den neuen Tabellenblättern.
Anzeige
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 12:56:02
guentherh
Dann den ersten Vorschlag in dem Tabellenblatt aufrufen, in dem Du ein diagramm haben willst.
Gruß,
Günther
AW: Makro auf alle Tabellenblätter laufen lassen
13.12.2011 14:35:01
Teggnodd
Danke für die Hilfe, hat jetzt alles gut funktioniert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige