Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramme ändern ohne select

Diagramme ändern ohne select
08.09.2003 22:27:11
Michael Rapp
Hallo Excelexperten,

Ich benutze viele Diagramme. um grafisch verschiedene Informationen nach Himmelsrichtungen darzustellen. Dazu wird nach einer Eingabe auf einem verborgenem Tabellenblatt die notwendigen Daten berechnet und dann per Makro in die bereits bestehenden Diagramme übertragen.

Das dauert aber ziemlich lange, do ich es noch nicht geschafft habe ohne SELECT auszukommen. Kann man die von mir genutzten Veränderungen ohne select oder activate machen?? Das wäre für mich ein Riesenfortschritt!!

Danke für die Hilfe

Michael

Hier mein Code :


Sub Name_Trigrams_A1()
'Makro bestimmt den mittlerenRing der äußeren Ringgruppe
'Es schreibt die Elementnamen und -zeichen entsprechend früh- und späthimmlisch.
'Es färbt die 8 Trigrammnamen und Zeichen entsprechend ihrer Elementfarben
'Auf dem Blatt "Tabellen" wird zwischen späten und frühem Himmel vorbereitet.
Dim intTrigramCol(40) As String   'Farbe des Trigramms
Dim strTrigramName(40) As String  'Name des Trigramms
Dim i As Integer                   'Zähler
Dim intLine As Integer          'Zeilennummer auf dem Blatt "Tabellen"
Dim objDaten As Object          'Blatt Tabellen
Set objDaten = Sheet27
intLine = 146
For i = 1 To 40        'vorbereitete Daten einlesen
strTrigramName(i) = objDaten.Range("ES" & intLine)
intTrigramCol(i) = objDaten.Range("ET" & intLine)
intLine = intLine + 1
Next i
Sheet29.Activate
Application.ScreenUpdating = False
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(3).Select
For i = 1 To 40         'eingelesene Daten übergeben
ActiveChart.SeriesCollection(3).Points(i).DataLabel.Select
Selection.Characters.Text = strTrigramName(i)
Selection.Font.ColorIndex = intTrigramCol(i)
Next i
Range("cn95").Activate        'Diagramm wieder verlassen
Application.ScreenUpdating = True
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme ändern ohne select
08.09.2003 22:32:10
GerdW
Verwende ein Objektvariable:
dim ch as Chart
set ch = ActiveSheet.ChartObjects("Chart 1").Chart

So kommst du ohne select aus.

Gerd
AW: Diagramme ändern ohne select
09.09.2003 01:40:38
Michael Rapp
Hallo Gerd,

das ist phantastisch!!!! Es funktioniert ohne selektieren, ja man muß noch nicht einmal auf dem Blatt sein. Meine Frage ist nun: Könnte man da nicht weiter gehen und zum Beispel für SeriesCollections oder DataLabel ein Object bilden? Meine Versuch schlugen jedoch bisher fehl.

Hier der neue Code:


Sub Name_Trigrams_A1()
Dim intTrigramCol(40) As String    'Farbe des Trigramms
Dim strTrigramName(40) As String   'Name des Trigramms
Dim i As Integer                   'Zähler
Dim intLine As Integer             'Zeilennummer auf dem Tabellenblatt
Dim objDaten As Object             'Blatt Tabellen
Dim chtTrigram As Chart            'Objekt des Diagramms
Set objDaten = Sheet27
Set chtTrigram = Sheet29.ChartObjects("Chart 1").Chart
intLine = 146
For i = 1 To 40
strTrigramName(i) = objDaten.Range("ES" & intLine)
intTrigramCol(i) = objDaten.Range("ET" & intLine)
intLine = intLine + 1
Next i
For i = 1 To 40
With chtTrigram
With .SeriesCollection(3).Points(i)
.DataLabel.Characters.Text = strTrigramName(i)
.DataLabel.Font.ColorIndex = intTrigramCol(i)
End With
End With
Next i
End Sub


Habe gleich weiter probiert, um den Code weiter zu kürzen. Die Frage ist, ob der dadurch schneller wird - funktionieren tut er!

Neuer Code 2. Variante:


Sub Name_Trigrams_A1()
Dim i As Integer                'Zähler
Dim intLine As Integer          'Zeilennummer auf dem Tabellenblatt
Dim objDaten As Object          'Blatt "Tabellen"
Dim chtTrigram As Chart
Set objDaten = Sheet27
Set chtTrigram = Sheet29.ChartObjects("Chart 1").Chart
intLine = 146
For i = 1 To 40
With chtTrigram
With .SeriesCollection(3).Points(i)
.DataLabel.Characters.Text = objDaten.Range("ES" & intLine) 'Name des Trigramms
.DataLabel.Font.ColorIndex = objDaten.Range("ET" & intLine) 'Farbe des Trigramms
End With
End With
intLine = intLine + 1
Next i
End Sub


Ich bin begeistert. Vielen Dank für den Hinweis.

Michael
Anzeige
AW: Diagramme ändern ohne select
09.09.2003 22:01:19
GerdW
Wenn du mit dem With- Rahmen hinkommst, ist es doch ok, da sparts
du Speicher für weitere Objektvariablen.
Prinzipiell sind alles Objekte, SeriesCollection, Points....
Ich hab für ein Diagramm noch nie select/activate gebraucht.

Gerd
AW: Diagramme ändern ohne select
11.09.2003 21:31:41
Michael Rapp
Hallo Gerd,

habe in den letzten Tagen viele verschiedene Prozeduren mit Erfolg umgestellt und bisher funktionieren alle.

Vielen Dank für die große Hilfe.

Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige