Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblatt Name geändert

Tabellenblatt Name geändert
27.04.2008 16:03:00
Heinz
Schönen Sonntag,im Forum
Habe in unteren Code der mir Werte von einer Externen Arbeitsmape Werte in "Gewichtsblätter & Wochenumbau" kopiert.
Bisher hatte die externe Mappe immer den Namen "KW18" oder "KW19", usw.. .
Nun wurde umgestellt und der Name der externen Mappe heißt jetzt "2008W18" oder "20008W19", usw..
Nun werden die Werte nicht mehr in "Gewichtsblätter & Wochenumbau" kopiert.
Habe es schon statt "Left" mit "Right" und statt "KW" nur mit "W" probiert, aber leider ohne Erfolg.
Könnte mir bitte jemand weiterhelfen.
Gruß Heinz

Private Sub CommandButton5_Click()
ActiveSheet.Unprotect
Windows.Application.ScreenUpdating = False
Dim wb1 As Workbook, wbKW As Workbook, wksKW As Worksheet
Set wb1 = Workbooks("Gewichtsblätter & Wochenumbau.xls")
For Each wbKW In Workbooks
If Left(wbKW.Name, 2) = "KW" Then Exit For
Next
If wbKW Is Nothing Then
MsgBox "Es ist kein Wochenplan zu Verfügung !"
ActiveSheet.Protect
Exit Sub
End If
For Each wksKW In wbKW.Worksheets
If Left(wksKW.Name, 2) = "KW" Then
wksKW.Copy Before:=wb1.Sheets(1)
Exit For
End If
Next
Dim wks As Worksheet
For Each wks In Worksheets
If wks.Name Like "KW*" Then
Dim sh As Object
For Each sh In Sheets
If sh.Name Like "KW*" Or sh.Name Like "KW*" Then
Application.DisplayAlerts = False
sh.Delete
Application.DisplayAlerts = True
End If
Next
ActiveSheet.Protect
Windows.Application.ScreenUpdating = True
Exit For
End If
Next
End Sub


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 20:08:10
Gerd
Gruß Gerd

AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 20:53:14
Heinz
Hallo Gerd
Habe wie von Dir verordnet " If Mid(wbKW.Name, 5) = "W" Then Exit For" abgeändert.
Trotzdem kommt die "MsgBox "Es ist kein Wochenplan zu Verfügung !" "
Es werden keine Daten eingefügt.
Gruß Heinz

AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 21:08:00
Gerd
Hallo Heinz,
verordnen tue ich nichts. :-)
Lass' mal nachfolgenden Code laufen u. gucke das Ergebnis im Direktfenster im VBA-Editor an.
Ggf. kannst das Ergebnis auch hier reinstellen.

Sub test()
Dim wb As Workbook, wks As Worksheet
For Each wb In Application.Workbooks
Debug.Print wb.Name
For Each wks In Workbooks(wb.Name)
Debug.Print wks.Name
Next
Next
End Sub


Gruß Gerd

Anzeige
AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 21:15:36
Heinz
Hallo Gerd
Habe im Direktfenster "KW18.xls" stehen,mit Deinen Code
Bekomme aber bei Deinen Code einen Fehler in der Zeile
For Each wks In Workbooks(wb.Name)
Gruß Heinz

AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 21:32:00
Gerd
Hallo Heinz,
sorry, da war noch ein Fehlerteufelchen drin.

Sub test()
Dim wb As Workbook, wks As Worksheet
For Each wb In Application.Workbooks
Debug.Print wb.Name
For Each wks In wb.Worksheets
Debug.Print wks.Name
Next
Next
End Sub


Auf ein Neues
Gerd

AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 21:39:00
Heinz
Hallo Gerd
Nun kommt das heraus.
KW18.xls
2008W18
STYLE
S1101
S1201
S1202
S1301
S1401
S1501
Gewichtsblätter & Wochenumbau.xls
Eingabe
Artikeln
Wochenplan
311
312A
312B
321
322
331
332
333
W311
W312
W321
W322
W331
W332
W333
Umbauplan
Folgende Blätter sind im externen Workbook ausgeblendet.
STYLE - S1101 - S1201 - S1202 - S1301 - S1401 - S1501
Gruß Heinz

Anzeige
AW: Mid(wbKW.Name, 5)="W" o.T.
27.04.2008 22:22:00
Gerd
Hallo Heinz,
es sieht so aus als hättest Du keine Datei umbenannt, sondern ein einzelnes Tabellenblatt.
Ich habe den Code nach meinem Verständnis geändert.
Wenn das Blatt "2008W..." das einzige sichtbare in einer Datei ist, dann kannst dies nicht löschen.
Apropo löschen, den Codeteil zum Blattlöschen habe ich nicht verstanden u. daher mal die entsprechenden Codezeilen auskommentiert.

Private Sub CommandButton5_Click()
ActiveSheet.Unprotect
Windows.Application.ScreenUpdating = False
Dim wb1 As Workbook, wbKW As Workbook, wksKW As Worksheet
Set wb1 = Workbooks("Gewichtsblätter & Wochenumbau.xls")
For Each wbKW In Workbooks
If Left(wbKW.Name, 2) = "KW" Then Exit For
Next
If wbKW Is Nothing Then
MsgBox "Es ist kein Wochenplan zu Verfügung !"
ActiveSheet.Protect
Exit Sub
End If
For Each wksKW In wbKW.Worksheets
If IsNumeric(Left(wksKW.Name, 4)) And Mid(wksKW.Name, 5, 1) = "W" Then
wksKW.Copy Before:=wb1.Sheets(1)
Exit For
End If
Next
'  Dim wks As Worksheet
'  For Each wks In Worksheets
'    If wks.Name Like "KW*" Then
'Dim sh As Object
'For Each sh In Sheets
'     If sh.Name Like "KW*" Or sh.Name Like "KW*" Then
'     Application.DisplayAlerts = False
'     sh.Delete
'     Application.DisplayAlerts = True
'End If
'Next
ActiveSheet.Protect
Windows.Application.ScreenUpdating = True
'      Exit For
'    End If
'  Next
End Sub


Gruß Gerd

Anzeige
AW: Mid(wbKW.Name, 5)="W" o.T.
28.04.2008 18:03:00
Heinz
Hallo Gerd
Sorry mußte gestern dann in das Bett, hatte Frühschicht.
Mit deinen geänderten Code wird das Blatt "2008W18" in die andere Arbeitsmappe kopiert.
Ohne die Werte einzufügen.
Gruß Heinz

AW: Werte übertragen
28.04.2008 22:34:00
Gerd
Hallo Heinz,
ich hatt den von dir hier eingestellten Teil-Code so angepasst, dass er mit
Blatt "Jahreszahl vierstellung + Buchstabe W " läuft.
Natürlich wird darin (nur) ein Sheet kopiert.
Für eine umfassende Lösung fehlt - zumindest heute - mir die Energie.
Ich stelle daher wieder auf offen.
Gruß Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige