Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1628to1632
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
Inhaltsverzeichnis

Tabellenblätter mit Objektname variabel ansprechen

Tabellenblätter mit Objektname variabel ansprechen
20.06.2018 08:07:41
IXCANYON
Hallo liebes Forum,
ich konnte leider noch nichts entsprechendes finden. VIlleicht habt ihr die Lösung.
Ich würde gerne mehrere Tabellenblätte pürfen ob ein Shape vorhanden ist z.B. Ellipse 1 und wenn ja dann eine Aktion ausführen.
Ich würde aber gerne die Tabellenblätter mit dem Objektnamen ansprechen da der Nutezr die sichtbaren Namen der Tabellenblätter ändern kann.
Bis jetzt habe ich eine If-Bedingung aber mir fehlt der Teil das Sheet2 also die 2 z.b. Variabel aufzubauen. Sheets(i) ist nicht die Lösung so wie ich es verstehe.
If Not Sheets2.Shapes.Range(Array("Ellipse 1.1")) Is Nothing Then
"Tu was"
End If
Habt ihr eine Idee?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Sheets2.Shapes("Ellipse 1.1") - o.w.T.
20.06.2018 08:24:39
Beverly


AW: Codename
20.06.2018 08:28:55
Fennek
Hallo,
die Abfrage des Codenames hängt von der Sprachversion ab, in dt "Tabelle1" usw, in eng "Sheet1" usw.
Bei den Namen der Shapes gibt es auch "Sprach-Wirrwar", mal dt "Ellipse", mal eng "eclips". Da macht es Sinn zuerst zu prüfen:

sub T_1()
dim Shp as shape
for i = 1 to sheets.count
for each shp in sheets(i).shapes
debug.print shp.name
next shp
next i
end sub
mfg
(aus dem Gedächtnis)
Tabellenblätter mit Objektname variabel ansprechen
20.06.2018 08:41:51
Nepumuk
Hallo,
würde ich so machen:
Option Explicit
Public Sub Beispiel()
Dim objWorksheet As Worksheet
Dim objShape As Shape
For Each objWorksheet In ThisWorkbook.Worksheets
For Each objShape In objWorksheet.Shapes
If objShape.Name = "Ellipse 1.1" Then
'tu was
End If
Next
Next
End Sub

Gruß
Nepumuk
Anzeige
Tabellenblätter mit Objektname variabel ansprechen
20.06.2018 11:40:13
IXCANYON
Nochmals vielen Dank für euren Input, habe jetzt eure Lösungen auf mein Problem maßgeschneidert:
Option Explicit
Public Sub Beispiel()
Dim objWorksheet As Worksheet   'Worksheet name
Dim objShape As Shape           'Shape name
Dim i As Integer                'Counter for grouped shapes
Dim j As Integer                'Counter for single shapse (4 on each sheet)
For Each objWorksheet In ThisWorkbook.Worksheets
For Each objShape In objWorksheet.Shapes
For i = 1 To 48 Step 1
If objShape.Name = "Gruppieren " & i Then 'Check if grouped shape on the sheet
If Not objWorksheet.Name = "Production Processes" Then 'Check if the sheet with  _
the grouped shape is is not the sheet "Production Processes"
For j = 1 To 4 Step 1 'Copy fill color from shape Ellipse 1.1-1.4 to sheet " _
Production Processes"
Tabelle10.Shapes.Range(Array("Ellipse " & i & "." & j)).Fill.ForeColor.RGB =  _
objWorksheet.Shapes.Range(Array("Ellipse " & i & "." & j)).Fill.ForeColor.RGB
Next j
MsgBox objWorksheet.Name
End If
End If
Next i
Next
Next
End Sub

Anzeige
Tabellenblätter mit Objektname variabel ansprechen
20.06.2018 12:26:02
IXCANYON
Nochmals vielen Dank für euren Input, habe jetzt eure Lösungen auf mein Problem maßgeschneidert:
Option Explicit
Public Sub Beispiel()
Dim objWorksheet As Worksheet   'Worksheet name
Dim objShape As Shape           'Shape name
Dim i As Integer                'Counter for grouped shapes
Dim j As Integer                'Counter for single shapse (4 on each sheet)
For Each objWorksheet In ThisWorkbook.Worksheets
For Each objShape In objWorksheet.Shapes
For i = 1 To 48 Step 1
If objShape.Name = "Gruppieren " & i Then 'Check if grouped shape on the sheet
If Not objWorksheet.Name = "Production Processes" Then 'Check if the sheet with  _
the grouped shape is is not the sheet "Production Processes"
For j = 1 To 4 Step 1 'Copy fill color from shape Ellipse 1.1-1.4 to sheet " _
Production Processes"
Tabelle10.Shapes.Range(Array("Ellipse " & i & "." & j)).Fill.ForeColor.RGB =  _
objWorksheet.Shapes.Range(Array("Ellipse " & i & "." & j)).Fill.ForeColor.RGB
Next j
MsgBox objWorksheet.Name
End If
End If
Next i
Next
Next
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige