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

Checken ob Tabelle bestimmten namen hat

Checken ob Tabelle bestimmten namen hat
14.10.2016 14:48:08
Max2
Hallo Leute,
habe eine Excel Datei mit 13 Tabs, das erste heißt "Personal", die anderen zwölf heißen Januar, Februar, März ... usw.
Die Tabs Januar bis Dezember sollen Je nach Jahr dann "Januar 16", "Februar 16" heißen, bis jetzt muss dass dann im Code angepasst werden.
Ich würde gerne eine abfrage machen ob die Tabellenblätter nach Blatt "Personal" eine zweistellige Zahl beinhalten, falls nicht soll eine Inputbox kommen die nach dem Jahr frägt und dieses dann an den Tab Namen hängt, falls Zahl vorhanden soll einfach nur die Range("A1:C300") in die Monats Blätter kopiert werden.
Der erste Sub Fügt eben die Entsprechenden Blätter hinzu, der zweite Sub kopiert dann die Daten.
Wo und vor allem Wie muss ich den Code umschreiben ?

Option Explicit
Dim Monat As Variant
Dim i
Public Sub Add()
Monat = Array("Januar 16", "Februar 16", "März 16", "April 16", "Mai 16", "Juni 16", "Juli 16",  _
"August 16", "September 16", "Oktober 16", "November 16", "Dezember 16")
For i = 0 To 11
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = Monat(i)
Next i
End Sub
Public Sub Paste_Personal()
Monat = Array("Januar 16", "Februar 16", "März 16", "April 16", "Mai 16", "Juni 16", "Juli 16",  _
_
"August 16", "September 16", "Oktober 16", "November 16", "Dezember 16")
For i = LBound(Monat) To UBound(Monat)
With Sheets(Monat(i)).Range("A1:C300")
.ClearContents
.ClearFormats
End With
Next i
For i = LBound(Monat) To UBound(Monat)
Worksheets("Personal").Range("A1:C300").Copy Destination:=Worksheets(Monat(i)).Range("A1")
Worksheets(Monat(i)).Columns.AutoFit
Next i
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 15:52:28
ChrisL
Hi Max
Vielleicht so...
Public Sub Paste_Personal()
Dim vMonat As Variant, vJahr As Variant
Dim i As Integer
Dim WS As Worksheet, bMonatExists As Boolean
vMonat = Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", _
"August", "September", "Oktober", "November", "Dezember")
For i = LBound(vMonat) To UBound(vMonat)
bMonatExists = False
For Each WS In ThisWorkbook.Worksheets
If Left(WS.Name, Len(vMonat(i))) = vMonat(i) Then
bMonatExists = True
Exit For
End If
Next WS
If bMonatExists Then
If IsNumeric(Right(WS.Name, 2)) Then
vJahr = Right(WS.Name, 2) * 1
Worksheets("Personal").Range("A1:C300").Copy Destination:=WS.Range("A1")
WS.Columns.AutoFit
Else
If vJahr = 0 Then
Do Until IsNumeric(vJahr) And Len(vJahr) = 2
vJahr = InputBox("Bitte Jahr 2-stellig eingeben")
Loop
End If
WS.Name = WS.Name & " " & vJahr
End If
Else
Set WS = Worksheets.Add(After:=Worksheets(Worksheets.Count))
If vJahr = 0 Then
Do Until IsNumeric(vJahr) And Len(vJahr) = 2
vJahr = InputBox("Bitte Jahr 2-stellig eingeben")
Loop
End If
WS.Name = vMonat(i) & " " & vJahr
Worksheets("Personal").Range("A1:C300").Copy Destination:=WS.Range("A1")
WS.Columns.AutoFit
End If
Next i
End Sub

cu
Chris
Anzeige
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 16:03:31
Max2
Das Funktioniert perfekt!
Vielen Dank, du hast mir sehr geholfen.
Diesen Teil deines Codes habe ich nicht ganz begriffen:

If IsNumeric(Right(WS.Name, 2)) Then
vJahr = Right(WS.Name, 2) * 1
Worksheets("Personal").Range("A1:C300").Copy Destination:=WS.Range("A1")
WS.Columns.AutoFit
Else
If vJahr = 0 Then
Do Until IsNumeric(vJahr) And Len(vJahr) = 2
vJahr = InputBox("Bitte Jahr 2-stellig eingeben")
Loop
Ist mir jetzt unangenehm da du mir schon so geholfen hast, aber könntest du mir diesen Teil ganz kurz erklären ?
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 16:23:20
ChrisL
Hi Max
Zugegeben mein Code ist etwas chaotisch, vielleicht habe ich auch zu viele Eventualitäten berücksichtigt.
(u.a. Gemisch aus Blätter mit und ohne Jahreszahl)
Das Blatt hat bereits eine Jahreszahl, dann wird die bereits existierende Jahreszahl in die Variable geschrieben.
Das Blatt hat keine Jahreszahl, dann wird geschaut, ob die Jahreszahl nicht bereits ermittelt wurde (anhand eines anderen Blatts oder durch vorherige InputBox Eingabe). Nur wenn vJahr = 0 wird InputBox gestartet und sonst nimmt es das Jahr aus der Variable.
cu
Chris
Anzeige
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 17:26:58
Max2
Finde den Code absolut spitze!
Ist ne Super Idee zu gucken ob ein anderes Blatt bereits ein Jahr hat!
Danke für die Erklärung
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 15:54:08
UweD
so?
Public Sub Name_check()
    Dim TMP As String, NN As String, Jahr As Integer, i As Integer
    TMP = "JanuarFebruarMärzAprilMaiJuniJuliAugustSeptemberOktoberNovemberDezember"
    
    For i = 1 To Sheets.Count
        With Sheets(i)
            If .Name <> "Personal" Then
                If Not IsNumeric(Right(.Name, 2)) Then
                    NN = Replace(.Name, " ", "")
                    If InStr(TMP, NN) > 0 Then
                        Jahr = InputBox("Welches Jahr (2 stellig)", , Format(Date, "YY"))
                        .Name = Trim(NN & " " & Jahr)
                    End If
                End If
                With .Range("A1:C300")
                    .ClearContents
                    .ClearFormats
                End With
                Sheets("Personal").Range("A1:C300").Copy _
                    Destination:=.Range("A1")
                .Columns.AutoFit
            End If
        End With
    Next i
End Sub

LG UweD
Anzeige
AW: Checken ob Tabelle bestimmten namen hat
14.10.2016 16:06:01
Max2
Danke, deine Version funktioniert auch Super :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige