array
28.08.2018 17:45:48
Georg
Liebe Mitglieder, konzentriert euch einfach mal auf den Array. Wenn der code durchläuft und die Datei nicht 12 Blätter hat, sondern beispielsweise nur 10 (beginnend mit März, April..)kommt am Ende heraus:
Blatt März wurde zu Jan_2018_Name etc.
ich bin mir sicher es liegt am Array aber ich kenne mich zu wenig aus. Ich müsse 100 Dateien bearbeiten, aber nicht alle haben eben 12 Blätter. Könnt ihr mir einen Tipp geben, das wäre super. DANKE
Sub NEU()
Dim WbNeuFallzahl As Workbook
Dim ws As Worksheet
Dim BPx As String
Dim BPxLang As String
Dim strFileName As String
Dim strFilter As String
Dim strInitFileName As String
Dim i As Long
Dim wsNumber As Long
Dim arrMonat(1 To 12) As Variant
arrMonat(1) = "Jan"
arrMonat(2) = "Feb"
arrMonat(3) = "März"
arrMonat(4) = "April"
arrMonat(5) = "Mai"
arrMonat(6) = "Juni"
arrMonat(7) = "Juli"
arrMonat(8) = "Aug"
arrMonat(9) = "Sept"
arrMonat(10) = "Okt"
arrMonat(11) = "Nov"
arrMonat(12) = "Dez"
Dim arrMonatlang(1 To 12) As Variant
arrMonatlang(1) = "Januar"
arrMonatlang(2) = "Februar"
arrMonatlang(3) = "März"
arrMonatlang(4) = "April"
arrMonatlang(5) = "Mai"
arrMonatlang(6) = "Juni"
arrMonatlang(7) = "Juli"
arrMonatlang(8) = "August"
arrMonatlang(9) = "September"
arrMonatlang(10) = "Oktober"
arrMonatlang(11) = "November"
arrMonatlang(12) = "Dezember"
'DateiÖffnen Dialog
strFilter = "Excel-Dateien(*.xlsx), *.xlsx" '** Dateifilter definieren
ChDrive "Q"
ChDir "Q:\Bereitschaftspraxen\Dienstprotokolle" '** Laufwerk und Pfad _
definieren, welcher geöffnet werden soll
'** Den im Dialogfeld gewählten Namen auslesen
strFileName = Application.GetOpenFilename(strFilter)
Set WbNeuFallzahl = Workbooks.Open(strFileName)
'** Hinweis ausgeben
MsgBox "Die Datei '" & WbNeuFallzahl.Name & "' wurde geöffnet.", vbInformation, _
"Hinweis"
WbNeuFallzahl.Activate
Worksheets(1).Range("X1").Value = Worksheets(1).Range("B2") 'langen Namen behalten, damit ich _
ihn später nicht wieder eingeben muss
BPxLang = Worksheets(1).Range("X1").Value
'Vorbereiten und BPx Namen kürzen, Monat kürzen
BPx = Application.InputBox("KurzName eingeben!") 'Kurznamen eingeben
For i = 1 To WbNeuFallzahl.Worksheets.Count
With WbNeuFallzahl.Worksheets(i)
.Cells(2, 2).Value = BPx 'kürzen
.Cells(4, 2).Value = arrMonat(i) ' Monat kürzen
End With
Next i
'Jeztt Blätter umbenennen
'WbNeuFallzahl.Activate
For Each ws In ActiveWorkbook.Worksheets
ws.Name = ws.Range("B4") & "_" & ws.Range("B3") & "_" & ws.Range("B2")
Next ws
'ursprügl. Namen & Monate wiederherstellen,
For i = 1 To WbNeuFallzahl.Worksheets.Count
With WbNeuFallzahl.Worksheets(i)
.Cells(2, 2).Value = BPxLang
.Cells(4, 2).Value = arrMonatlang(i)
End With
Next i
End Sub