Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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

Makro nacheinander bei bestimmten Tabellennamen

Makro nacheinander bei bestimmten Tabellennamen
23.10.2013 14:10:33
Andi
Hallo,
ich möchte ein fertiges Modul gleichzeitig/nacheinander auf versch. Tabellenblätter anwenden lassen, wenn der Tabellenname mit einer Zahl beginnt.
Ich habe hier unterschiedlich große Dateien mit bis zu 40 Blättern. Einige beginnen mit Buchstaben und davon sind auch noch welche ausgeblendet.
Die hier betreffenden Blätter, auf die das Makro nacheinander greifen soll heißen z.Bsp. wie folgt:
"3_Heiner_geht"
"17_Klaus_kommt"
"4_Die_Sonne_scheint"
Einstellige Ziffern beginnen leider nicht mit einer führenden "0".
Kann man das in einer Schleife verbasteln?
DANKE im Voraus!

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

Betreff
Datum
Anwender
Anzeige
AW: Makro nacheinander bei bestimmten Tabellennamen
23.10.2013 14:21:41
KlausF
Hallo Andi
Dim wks As Worksheet
For Each wks in ThisWorkbook.Worksheets
If Left (wks.Name, 1) Like "#" Then
'Dein Code
End if
Next
Gruß
Klaus

was wenn...
23.10.2013 14:24:12
selli
hallo klaus,
....im makro das blatt benannt ist?
dann lüft das makro zig mal im selben blatt.
gruß
selli

AW: was wenn...
23.10.2013 14:42:35
KlausF
Hallo selli,
du hast völlig recht, aber das war nicht Bestandteil der Frage.
Solange der Code nicht gepostet wird mache ich mir darüber keine Gedanken ...
Gruß
Klaus

falsch
23.10.2013 14:47:20
selli
hallo klaus,
war sehrwohl bestandteil der frage.
ich möchte ein fertiges Modul gleichzeitig/nacheinander auf versch. Tabellenblätter anwenden lassen
gruß
selli

Anzeige
AW: falsch?
23.10.2013 14:52:03
KlausF
Hallo selli,
ich will mich nicht streiten, aber solange kein Code da war, ist es ein Blindflug.
Lautet der Code
Range(A1"), Value = "Klaus"
funktioniert doch alles. Es ist also codeabhängig, Oder sehe ich das alleine so?
Gruß
Klaus

AW: falsch?
23.10.2013 15:11:51
Andi
Code ist gepostet, aber evtl. komme ich hier mit der Bedienung des Forums nicht klar ?

AW: Makro nacheinander bei bestimmten Tabellennamen
23.10.2013 14:22:09
selli
hallo andi,
warum tun hier nur alle so geheimnisvoll?
wie sieht denn das makro (ich vermute das meinst du, wenn du modul sagst) aus?
wie soll man denn fundierten rat geben, wenn man raten muss?
gruß
selli

Anzeige
AW: Makro nacheinander bei bestimmten Tabellennamen
23.10.2013 14:23:16
CitizenX
Hi,
if isnumeric(split(deinTabellenName,"_")(0)) then
Grüße
Steffen

AW: Makro nacheinander bei bestimmten Tabellennamen
23.10.2013 14:42:13
Andi
Danke für die schnellen Antworten! Das geht ja fix hier :-)
Mit dem Makro befülle ich selbstgebaute Gannt-Diagramme (viel bedingte Formatierungen) und schreibe aktuelle Werte an die jeweils gültige Stelle.
Die Wiederholungen von Zeile 10 bis Zeile 66 hatte ich schon mal in ein Array umgeschrieben, damit´s schlanker wird. Leider dauerts dann auch viel-viel länger.
Makro sieht folgendermaßen aus.

Sub Starte_Prognose()
'Zeige Meldefenster
WaitPrognose.Show vbModeless
Application.Wait Now + TimeValue("00:00:01")
Application.ScreenUpdating = False
'lösche alte Meilensteine
Range(Cells(9, 1), Cells(9, 265)).ClearContents
'lösche alte Prognosewerte
For t = 66 To 10 Step -4
If Cells(t, 1).Value > "" Then
For zeile = t To t Step 4
Range(Cells(zeile, 6), Cells(zeile, 265)).ClearContents
Next zeile
End If
Next t
Application.ScreenUpdating = True
Application.ScreenUpdating = False
' neue Meilensteine eintragen
For Each zelle In Range("F8:JE9")
If zelle.Value = Range("Jo6").Value Then
zelle.Offset(1, 0) = Range("JN6").Value
End If
If zelle.Value = Range("JQ6").Value Then
zelle.Offset(1, 0) = Range("JP6").Value
End If
If zelle.Value = Range("JS6").Value Then
zelle.Offset(1, 0) = Range("JR6").Value
End If
If zelle.Value = Range("JU6").Value Then
zelle.Offset(1, 0) = Range("JT6").Value
Exit For
End If
Next
' Z E I L E N W E R T E
' ############################################ Zeile 10 ##
For Each zelle In Range("F8:JE10")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(2, 0) = Range("JN10").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(2, 0) = Range("JP10").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(2, 0) = Range("JR10").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(2, 0) = Range("JT10").Value
Exit For
End If
Next
' ############################################ Zeile 14 ##
For Each zelle In Range("F8:JE14")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(6, 0) = Range("JN14").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(6, 0) = Range("JP14").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(6, 0) = Range("JR14").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(6, 0) = Range("JT14").Value
Exit For
End If
Next
' ############################################ Zeile 18 ##
For Each zelle In Range("F8:JE18")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(10, 0) = Range("JN18").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(10, 0) = Range("JP18").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(10, 0) = Range("JR18").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(10, 0) = Range("JT18").Value
Exit For
End If
Next
' ############################################ Zeile 22 ##
For Each zelle In Range("F8:JE22")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(14, 0) = Range("JN22").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(14, 0) = Range("JP22").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(14, 0) = Range("JR22").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(14, 0) = Range("JT22").Value
Exit For
End If
Next
' ############################################ Zeile 26 ##
For Each zelle In Range("F8:JE26")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(18, 0) = Range("JN26").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(18, 0) = Range("JP26").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(18, 0) = Range("JR26").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(18, 0) = Range("JT26").Value
Exit For
End If
Next
' ############################################ Zeile 30 ##
For Each zelle In Range("F8:JE30")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(22, 0) = Range("JN30").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(22, 0) = Range("JP30").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(22, 0) = Range("JR30").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(22, 0) = Range("JT30").Value
Exit For
End If
Next
' ############################################ Zeile 34 ##
For Each zelle In Range("F8:JE34")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(26, 0) = Range("JN34").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(26, 0) = Range("JP34").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(26, 0) = Range("JR34").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(26, 0) = Range("JT34").Value
Exit For
End If
Next
' ############################################ Zeile 38 ##
For Each zelle In Range("F8:JE38")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(30, 0) = Range("JN38").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(30, 0) = Range("JP38").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(30, 0) = Range("JR38").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(30, 0) = Range("JT38").Value
Exit For
End If
Next
' ############################################ Zeile 42 ##
For Each zelle In Range("F8:JE42")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(34, 0) = Range("JN42").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(34, 0) = Range("JP42").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(34, 0) = Range("JR42").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(34, 0) = Range("JT42").Value
Exit For
End If
Next
' ############################################ Zeile 46 ##
For Each zelle In Range("F8:JE46")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(38, 0) = Range("JN46").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(38, 0) = Range("JP46").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(38, 0) = Range("JR46").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(38, 0) = Range("JT46").Value
Exit For
End If
Next
' ############################################ Zeile 50 ##
For Each zelle In Range("F8:JE50")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(42, 0) = Range("JN50").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(42, 0) = Range("JP50").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(42, 0) = Range("JR50").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(42, 0) = Range("JT50").Value
Exit For
End If
Next
' ############################################ Zeile 54 ##
For Each zelle In Range("F8:JE54")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(46, 0) = Range("JN54").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(46, 0) = Range("JP54").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(46, 0) = Range("JR54").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(46, 0) = Range("JT54").Value
Exit For
End If
Next
' ############################################ Zeile 58 ##
For Each zelle In Range("F8:JE58")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(50, 0) = Range("JN58").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(50, 0) = Range("JP58").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(50, 0) = Range("JR58").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(50, 0) = Range("JT58").Value
Exit For
End If
Next
' ############################################ Zeile 62 ##
For Each zelle In Range("F8:JE62")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(54, 0) = Range("JN62").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(54, 0) = Range("JP62").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(54, 0) = Range("JR62").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(54, 0) = Range("JT62").Value
Exit For
End If
Next
' ############################################ Zeile 66 ##
For Each zelle In Range("F8:JE66")
'...und überprüfen, ob da der Wert aus Step drinsteht
If zelle.Value = Range("JO6").Value Then '# Step1
zelle.Offset(58, 0) = Range("JN66").Value
End If
If zelle.Value = Range("JQ6").Value Then '# Step2
zelle.Offset(58, 0) = Range("JP66").Value
End If
If zelle.Value = Range("JS6").Value Then '# Step3
zelle.Offset(58, 0) = Range("JR66").Value
End If
If zelle.Value = Range("JU6").Value Then '# Step4
zelle.Offset(58, 0) = Range("JT66").Value
Exit For
End If
Next
Application.ScreenUpdating = True
Unload WaitPrognose
End Sub
Die erste Lösung von Klaus funzt leider nicht. Da wurde das erste Tabellenblatt zerstört, weil der Code direkt hier angwendet wurde (Name des 1.Bl.: "Master").
Die zweite Lösung erschließt sich mir noch nicht...?
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige