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

markieren ohne befehlsschaltflächen

markieren ohne befehlsschaltflächen
14.11.2007 11:49:16
schnierle
hallo,
ich hätte wieder ein problem. gibt es eine möglichkeit, alle objekte in einem tabellenblatt zu markieren ausser die befehlsschaltflächen? wäre super wenn ihr mir da helfen könntet

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: markieren ohne befehlsschaltflächen
14.11.2007 12:21:14
Mag
Hi,
z.B. so:
ActiveSheet.Shapes.Range(Array(1, 2, 4, 5, 6, 9)).Select
Gruss

AW: markieren ohne befehlsschaltflächen
14.11.2007 12:51:00
schnierle
hi Mag,
danke für die antwort. es würde super funktionieren aber leider ist meine anzahl der objekte immer verschieden, nur die drei befehlsflächen bleiben gleich. wie kann ich das den dynamisch hinkriegen?
gruß
markus

befehl variieren?
14.11.2007 14:14:00
schnierle
hallo nochmal,
kann der befehl
ActiveSheet.Shapes.Range(Array(1, 2, 4, 5, 6, 9)).Select
so varriert werden, dass ich den bereich des arrays angeben kann. ich weiss, dass auf meinem blatt die ersten drei objekte immer da sind. diese sollen nicht ausgewählt werden.
die anzahl der übrigen objekte kann ich ja zählen.
gibt es jetzt die möglichkeit, den befehl von oben so in dieser art umzuschreiben:
ActiveSheet.Shapes.Range(Array(4 - anzahlobjekte)).Select
Gruß markus

Anzeige
AW: befehl variieren?
14.11.2007 14:39:00
Mag
Hi,
war verhindert. Ja, Du kannst mit ActiveSheet.Shapes.Count die Anzahl ermitteln und erstellst Dir Dein Array mit '.Name' als String oder Schleifenzähler als Integer/Long. Dann mit ActiveSheet.Shapes.Range(DEINARRAY).Select
Achtung: Dein Array darf nicht größer sein, als Anzahl Deiner Shapes; daher Redim verwenden.
Gruß

AW: befehl variieren?
14.11.2007 14:43:00
Mag
... Beispiel:
Option Explicit

Sub ttt()
Dim i As Long, myArray()
ReDim myArray(4 To ActiveSheet.Shapes.Count)
For i = 4 To ActiveSheet.Shapes.Count
myArray(i) = i
Next i
ActiveSheet.Shapes.Range(myArray).Select
End Sub


Gruss

Anzeige
dankeschön!!
14.11.2007 14:56:00
schnierle
Hallo Mag,
genau das, was ich gesucht habe, vielen dank!!
gruß

AW: befehl variieren?
14.11.2007 15:02:30
Mag
... oder kürzer:
Option Explicit

Sub ttt()
Dim i As Long, myArray()
With ActiveSheet.Shapes
ReDim myArray(4 To .Count)
For i = 4 To .Count
myArray(i) = i
Next i
.Range(myArray).Select
End With
End Sub


Über die Namen '.Name' kannst Du auch die Auswahl treffen, dann das Feld dimensionieren und besetzen.
Wie der Typ des Shapes erfragt wird, müsste ich selber recherchieren ... vielleicht meldet sich ja noch jemand - vielleicht mit einem anderen (besseren) Ansatz ...
Gruss

Anzeige
AW: befehl variieren?
14.11.2007 16:26:08
Mag
...

Sub cc()
MsgBox ActiveSheet.OLEObjects(3).Name 'Name des Shapes, über Eigenschaften änderbar
MsgBox ActiveSheet.Shapes(3).Name 'Name des Shapes, über Eigenschaften änderbar
MsgBox TypeName(ActiveSheet.OLEObjects(3).Object) 'Typ, z.B. Textbox, nicht änderbar
End Sub


AW: befehl variieren?
14.11.2007 16:36:00
Mag
... oder:

Sub ddd()
Dim ole As OLEObject
For Each ole In ActiveSheet.OLEObjects
MsgBox TypeName(ole.Object)
Next
End Sub


Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige