Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
592to596
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
592to596
592to596
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Array füllen

Array füllen
30.03.2005 12:17:55
Hendrik
Hallo,
Ich habe das Problem ein Array mit 144 "Freeforms" füllen zu wollen.
die Freiformen werden in Excel ja alle irgendwie nicht nachvollziehbar numeriert, so dass ich ein Makro aufgezeichnet habe in dem ich alle ein mal markierte, um den Namen rauszubekommen.
wie schreibe ich nun die Namen komfortabel in ein Array, wenn diese in VBA codeform auf meiner VBA-Oberfläche stehen und nicht in einer, bzw. 144 Excel-Zellen?
hier ein Auszug des Makros:
ActiveChart.Shapes("Freeform 56").Select
ActiveChart.Shapes("Freeform 61").Select
ActiveChart.Shapes("Freeform 66").Select

ActiveChart.Shapes("Freeform 39").Select
ActiveChart.Shapes("Freeform 44").Select
ActiveChart.Shapes("Freeform 49").Select

ActiveChart.Shapes("Freeform 22").Select
ActiveChart.Shapes("Freeform 27").Select
ActiveChart.Shapes("Freeform 32").Select
u.s.w.
die stehen da jetzt.
Wie bekomme ich diese 144! Zeilen (oder insbes. die Namen aus den Zeilen) in ein Array?
Danke für jede Hilfe!
Hendrik.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array füllen
30.03.2005 12:42:12
Uduuh
Hallo,
ungetestet:

Sub chartnames()
dim i as integer, arrChart(144), sh as shape
i=1
for each sh in activechart.shapes
arrchart(i)=sh.name
i=i+1
next sh
End Sub

Gruß aus'm Pott
Udo
AW: Array füllen
30.03.2005 12:59:49
Hendrik
Naja, das füllt mir das Array mit den ersten 144 shapes des aktiven Charts. Leider geht das so nicht, da ich nicht alle shapes brauche, sondern NUR die aus dem Makro. Insgesamt gibt es ca. 1000 shapes in 4 verschiedenen charts.
danke trotzdem für den Ansatz.
Hendrik.
Um auch nur die Freeforms einzulesen...
30.03.2005 13:01:09
Boris
Hi Hendrik,
...und nicht auch mögliche andere Shapes, dann:
Option Explicit

Sub free_forms()
Dim ff As Shape, arr() As String, i As Integer
For Each ff In ActiveChart.Shapes
If ff.Type = 5 Then
ReDim Preserve arr(i)
arr(i) = ff.Name
i = i + 1
End If
Next ff
End Sub

Grüße Boris
Anzeige
AW: Um auch nur die Freeforms einzulesen...
30.03.2005 13:25:56
Hendrik
Tut mir leid, das ist es leider auch nicht, ich muss auch sicher stellen, dass genau eine bestimmte Freeform an einer bestimmten Stelle im Array steht um schließlich die Farbe in einer Schleife nach bestimmten Regeln zu ändern. Ich glaube außerdem, dass die 1000 Shapes alle Freeforms sind, da ich sie per Copy/Paste aus Powerpoint geholt habe.
Danke aber für die Idee.
Hendrik.
Excel kann leider noch nicht hellsehen...
30.03.2005 13:31:46
Boris
Hi Hendrik,
...insofern müssen die gewünschten Freeforms mindest ein gemeinsame typische Eigenschaft haben, um sie dynamisch aus deinem Formenwust zu identifizieren.
Grüße Boris
AW: Excel kann leider noch nicht hellsehen...
30.03.2005 18:31:17
ransi
hallo hendrik
wie boris sagte:
"...insofern müssen die gewünschten Freeforms mindest ein gemeinsame typische Eigenschaft haben, um sie dynamisch aus deinem Formenwust zu identifizieren."
wenn ich dich richtig verstanden habe sind die alle selectiert.
versuch mal so:(ungetestet)

Sub chartnames()
dim i as integer
dim arrChart(144)
dim sh
i=1
for each sh in selection
arrchart(i)=sh.name
i=i+1
next sh
End Sub

ransi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige