Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1044to1048
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
Makro läuft nur einmal
02.02.2009 17:58:00
Heinz
Hallo Leute
Ich habe einen externen Sheets z.B. "20090W6" oder "2009W06B" usw.. (2009 ist das Jahr) "(W06 ist die Kalenderwoche)
Die Werte von diesen Sheets werden mir in die Arbeitsmappe "Gewichtsblätter & Wochenumbau-test.xls" eingetragen.
Soweit funktioniert auch alles.
Wenn ich den CommandButton2 2 mal hintereinander anklicke funkt. das untere Makro nicht. Ich muss zuerst meine Arbeitsmappe schliessen und wieder öffnen,dann funkt. es wieder, aber nur einmal.
Weiss jemand woran das liegen kann ?
Gruß Heinz
Option Explicit
'---- Planänderung -----

Private Sub CommandButton2_Click()
Sheets("Wochenplan").Unprotect Password:="test"
Windows.Application.ScreenUpdating = False
Dim wb1 As Workbook, wbKW As Workbook, wksKW As Worksheet
Set wb1 = Workbooks("Gewichtsblätter & Wochenumbau-test.xls")
For Each wbKW In Workbooks
' If Left(wbKW.Name, 2) = "KW" Then Exit For
If wbKW.Name Like "*W*" And Left(wbKW.Name, 1)  "W" Then Exit For
Next
If wbKW Is Nothing Then
MsgBox "Es ist kein Wochenplan zu Verfügung !"
Sheets("Wochenplan").Protect Password:="test"
Exit Sub
End If
For Each wksKW In wbKW.Worksheets
'If Left(wksKW.Name, 2) = "KW" Then
If wksKW.Name Like "[0-9]*[W][0-9]*" Then
wksKW.Copy Before:=wb1.Sheets(1)
'      wksKW.Copy Before:=wbThis.Sheets(1)
Exit For
End If
Next
Dim wks As Worksheet
For Each wks In Worksheets
'If wks.Name Like "KW*" Then
If wks.Name Like "[0-9]*[W][0-9]*" Then
' KW Einfügen
Range("A62") = Left(wks.Range("J3").Value, 7)
'Linie 311--------
Range("F65") = Left(wks.Range("C5").Value, 5) 'Sonntag Linie 311
'Leerzeichen löschen
Range("F65:AL110").Replace What:=" ", Replacement:="", LookAt:=xlPart
Range("A62").Replace What:="(", Replacement:="", LookAt:=xlPart
Dim sh As Object
For Each sh In Sheets
If sh.Name Like "*W*" And Left(sh.Name, 1)  "W" Then
'If sh.Name Like "KW*" Or sh.Name Like "KW*" Then
'If sh.Name Like "*KW*" Or sh.Name Like "*KW*" Then
Application.DisplayAlerts = False
sh.Delete
Application.DisplayAlerts = True
End If
Next
Windows.Application.ScreenUpdating = True
Exit For
End If
Next
Sheets("Wochenplan").Protect Password:="test"
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro läuft nur einmal
02.02.2009 18:01:00
Peter
Hallo Heinz,
schon mal das Screenupdating deaktiviert und geschaut, ob irgendeine Meldung kommt?
Funktioniert es mehrfach hintereinander das Makro Schritt für Schritt (F8) durchzugehen?
Gruß
Peter R.
AW: Makro läuft nur einmal
02.02.2009 18:12:00
Heinz
Hallo Peter
Dein Tip mit dem "Screenupdating" ist schon sehr gut. Jetzt läuft das Makro jedesmal.
NUR wenn ich jetzt einen exteren Sheets öffne läuft das Makro nicht.
Muss erst wieder Mappe schliessen und öffnen dann läuft es wieder.
Wo könnte bitte der nächste Fehler liegen ?
Gruß
Heinz
AW: Makro läuft nur einmal
02.02.2009 18:51:11
Heinz
Hallo Peter
Habe If wbKW.Name Like "*W*" in
If wbKW.Name Like "*KW*" umbennant, nun läuft es !!
Danke für deine Hilfe
Gruß
Heinz
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige