Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1220to1224
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
Alle Blätter mit "ABC" durchlaufen
Kai
Hallo,
Ich möchte per VBA alle Tabellenblätter durchlaufen, die mit "BESTAND" beginnen.
Blätter können zB. heisen:
"Bestand Alt"
"Bestand Neu"
"Bestand Heute"
...
und dort einen Code ausführen. Ich weiss nicht, ob ich da jedes Tabellenblatt einzeln selektieren muss, code (aus Modul) ausführen, nächstes Blatt selektieren, Code ausführen usw.... oder ob es da eine elegantere Möglichkeit gibt.
Danke mal für alle Tipps.
Kai
AW: Alle Blätter mit "ABC" durchlaufen
08.07.2011 10:28:56
Rudi
Hallo,
ob ich da jedes Tabellenblatt einzeln selektieren muss
Selektieren muss man gar nichts.
Dim wks as WorkSheet
For Each wks in Worksheets
If wks.Name like "Bestand*" Then
With wks
'Code
End With
End If
Next wks

Gruß
Rudi
AW: Alle Blätter mit "ABC" durchlaufen
08.07.2011 11:34:46
Kai
Hallo Rudi,
Danke. Ich möchte auf den verschiedenen Tabellenblätter jeweils die Textbox1 ansprechen.
Da kommt aber immer eine Fehlermeldung "Objekt erforderlich"
Dim wks as WorkSheet
For Each wks in Worksheets
If wks.Name like "Bestand*" Then
With wks
.TextBox1.ShapeRange.Left = .Range("B30").Left + 3
End With
End If
Next wks
Was mache ich denn falsch ?
Danke
Kai
Anzeige
ohne ShapeRange owT
08.07.2011 11:49:07
Rudi
AW: ohne ShapeRange owT
08.07.2011 12:01:11
Kai
Hallo Rudi,
das scheint keine Rolle zu spielen, die Textbox1 wird trotzdem nicht gefunden (ist aber definitiv da)
- auf keinem einzigen Tabellenblatt
Dim wks As Worksheet
For Each wks In Worksheets
If wks.Name Like "Bestand*" Then
With wks
.TextBox1.Left = .Range("B30").Left + 3
.TextBox1.Width = 735
.TextBox1.Value = .Range("B30").Value
End With
End If
Next wks
End Sub
Die Textbox sitzt auf jedem Tabellenblatt.
Gruß
Kai
With Worksheets(wks.Name) owT
08.07.2011 12:08:31
Matthias
Quatsch mwT
08.07.2011 12:30:41
Rudi
Hallo,
wozu erst den Namen eines Objekts ermitteln, um dann das Objekt damit anzusprechen?
Man kann auch direkt mit dem Objekt (wks) arbeiten.
Gruß
Rudi
Anzeige
wenn Du meinst
08.07.2011 12:49:21
Matthias
Hallo
Dann hast Du eben eine bessere Excelversion
Den Betreff kann man aber auch etwas Stilvoller gestalten :(
Ich hätte es nicht vorgeschlagen, wenn ich es nicht getestet hätte.
Getestet unter XL2000 und XL2007.
Userbild
Ich wollte nur helfen, sorry!
MfG Matthias
AW: wenn Du meinst
08.07.2011 13:02:44
Rudi
Hallo,
nimm's nicht persönlich.
Dann hast Du eben eine bessere Excelversion
Nein. XP
Ich hätte es nicht vorgeschlagen, wenn ich es nicht getestet hätte.
Ich hab ja gar nicht gesagt, dass es nicht funktioniert. Es ist nur ein Schritt zu viel.
Den Betreff kann man aber auch etwas Stilvoller gestalten
Bin halt oft ein bisschen grob.
Ich wollte nur helfen, sorry!
Wirft dir auch keiner vor.
Dass es mit With wks nicht funktioniert, kann ich mir nicht vorstellen, da wks das Worksheet repräsentiert und somit identisch ist mit Worksheets(wks.Name)
Forumsteilnehmer(Matthias.Name) ist ja auch Matthias.
Gruß
Rudi
Anzeige
Ok Rudi ... hier die Datei
08.07.2011 13:12:23
Matthias
Hallo Rudi
Ich war eben gerade nur etwas mürrisch.
Vergeht aber auch schnell wieder :o)
Probiers bitte aus mit beiden Varianten
Textbox ist aus Steuerelemente
https://www.herber.de/bbs/user/75637.xls
Mich würde interessieren ob es bei Dir klappt.
Gruß Matthias
sehr kurios
08.07.2011 13:32:20
Rudi
Hallo,
das zerstört mein Weltbild.
Da meckert ja schon der Debugger.
So geht das aber auch:
Sub test()
Dim wks As Worksheet, shp As Shape
For Each wks In Worksheets
If wks.Name Like "Bestand*" Then
MsgBox wks Is Worksheets(wks.Name)  'immer WAHR
With wks
Set shp = .Shapes("Textbox1")
shp.Left = .Range("B30").Left + 3
shp.Width = 200
shp.DrawingObject.Object.Value = "und klappts ?"
End With
End If
Next wks
End Sub

Ist aber noch umständlicher.
Gruß
Rudi
Anzeige
@Rudi: Die Erde ist eben doch keine Scheibe ;-)_oT
08.07.2011 13:43:04
NoNet
_oT = "ohne Text"
Die Erde ist (k)eine Scheibe
AW: ohne ShapeRange owT
08.07.2011 12:27:19
Rudi
Hallo,
was sind das für Textboxen? Aus der Steuerelemente-Toolbox oder aus Formular?
Gruß
Rudi
warum schreibst Du nicht gleich was Du willst ?
08.07.2011 12:04:31
Matthias
Hallo
In jedem Blatt heit das Objekt Textbox1
Sub alleMitBestand()
Dim x&
For x = 1 To Worksheets.Count
With Worksheets(x)
If Left(.Name, 7) = "Bestand" Then
.TextBox1.Left = .Range("B30").Left + 3
.TextBox1.Text = "alles klaro?"
End If
End With
Next
End Sub
Gruß Matthias
Anzeige
Sorry, Danke, nun funktioniert es owT
08.07.2011 13:25:14
Kai
nicht getestet ...
08.07.2011 10:29:07
Matthias
Hallo
Sub alleMitBestand()
dim x&
For x = 1 To Worksheets.Count
If Left(Worksheets(x).Name, 7) = "Bestand" Then '... machwas
Next
End Sub
Gruß Matthias
Alle Blätter 'abklappern'
08.07.2011 10:30:13
NoNet
Hallo Kai,
dazu musst Du leider tatsächlich alle Blätter einzeln "abklappern" und mit dem gewünschten Namen vergleichen :
Sub SheetsAbklappern()
Dim ws As Worksheet
For Each ws In Worksheets
'Name hier in GROSSBUCHSTABEN überprüfen und angeben !
If UCase(ws.Name) Like "BESTAND *" Then MachWas ws
Next
End Sub
Sub MachWas(ws)
MsgBox "Blatt wird bearbeitet : " & vbLf & vbLf & ws.Name
End Sub
Gruß, NoNet
Anzeige
Textboxen aller Blätter modifizieren
08.07.2011 13:19:23
NoNet
Hallo Kai,
hier ein kleines Beispiel, das unter Excel 2003 funktioniert :
Sub AllesQuatsch_StreitetNicht()
Dim wks As Worksheet
For Each wks In Worksheets
If Ucase(wks.Name) Like "BESTAND *" Then
With wks.OLEObjects("TextBox1")
.Left = .Parent.Range("B30").Left + 3
.Width = 735
.Object.Text = "Bleibt friedlich - so funktioniert's !"
End With
End If
Next wks
End Sub
@Rudi + Matthias : Bleibt friedlich ;-) ! Grundsätzlich hat Rudi mit der Ojektreferenizierung Recht, aber leider funktioniert es in diesem Fall offenbar nicht.
Ich habe in meinem Code die Textbox1 nicht als eigenes Objekt referenziert, sondern als Aufzählungselement des OLEObjects !
Salut, NoNet
Anzeige
Großen Dank an alle, bei so viel Hilfe....
08.07.2011 13:27:04
Kai
..muss es ja mal gehn.
Gruß
Kai

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige