Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
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
Was ist der Fehler?
16.01.2017 15:13:39
chris
Excel meckert: Fehler beim Kompilieren: Syntaxfehler
For Each NeueTabelle In Worksheets("Liste").Range("C5") & "," & Range("D5").Value
Danke Chris

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

Betreff
Datum
Anwender
Anzeige
AW: Was ist der Fehler?
16.01.2017 15:20:18
UweD
so...
    For Each NeueTabelle In Worksheets("Liste").Range("C5:D5").Value
LG UweD
AW: Was ist der Fehler?
16.01.2017 15:26:38
chris
Hallo,
vielen Dank für die schnelle Antwort. Ich denke ich muss wohl doch ein wenig mehr ausholen ;)
Mein Ziel ist, Vor- und Nachnamen (Zellen C5 und D5) als neue Tabellenblattnamen zusammenzuführen.
Ich habe jedoch in den Spaltern C und D immer verschiedene Anzahlen von Namen. Wie muss ich den Code modifizieren, dass er so lange die Spalten nach unten geht bis kein Name mehr da steht und mir aus den bestehenden Namensspalten die Blattnamen macht?
Danke erneut! Chris
PS: hier mein vollständiger Code:
Sub Erstellen()
For Each NeueTabelle In Worksheets("Liste").Range("C5:D5").Value
If Not IsEmpty(NeueTabelle) Then
Sheets("Muster").Copy After:=Sheets(Sheets.Count) 'Vorlagetabelle als letztes Blatt in die  _
Arbeitsmappe kopieren
Application.DisplayAlerts = False 'Rückfrage (nach dem Löschen einer bestehenden Tabelle)  _
unterdrücken
'Versuch, eine gleichnamige Tabelle zu löschen; bei Fehler (= Tabelle ohnehin nicht vorhanden)  _
einfach weitermachen
On Error Resume Next: Sheets(NeueTabelle).Delete: On Error GoTo 0
Application.DisplayAlerts = True 'Systemeldungen wieder einschalten
Sheets(Sheets.Count).Name = NeueTabelle 'neue Tabelle (= letztes Blatt der Mappe) umbenennen
End If
Next
MsgBox "Fertig."
End Sub

Anzeige
AW: Was ist der Fehler?
16.01.2017 15:57:10
UweD
Hallo nochmal
Dann so..
Sub Erstellen()
    Dim SP As Integer, ZE As Integer, LR As Long, i As Long
    Dim NT As Worksheet, NeueTabelle As String
    SP = 3 'Spalte C 
    ZE = 5 'ab Zeile 
    With Worksheets("Liste")
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte C 

        For i = ZE To LR
            If Not IsEmpty(.Cells(i, SP)) Then
                NeueTabelle = .Cells(i, SP) & " " & .Cells(i, SP + 1)
                Sheets("Muster").Copy After:=Sheets(Sheets.Count)
                Set NT = ActiveSheet
                Application.DisplayAlerts = False 'Rückfrage (nach dem Löschen einer bestehenden Tabelle) _
                    unterdrücken 
                    'Versuch, eine gleichnamige Tabelle zu löschen; bei Fehler (= Tabelle ohnehin nicht vorhanden) _
                    einfach weitermachen 
                On Error Resume Next: Sheets(NeueTabelle).Delete: On Error GoTo 0
                Application.DisplayAlerts = True 'Systemeldungen wieder einschalten 
                NT.Name = NeueTabelle 'neue Tabelle (= letztes Blatt der Mappe) umbenennen 
            End If
        Next
    End With
    
    MsgBox "Fertig."
End Sub

LG UweD
Anzeige
AW: Was ist der Fehler?
16.01.2017 16:21:46
chris
Hi UweD,
vielen herzlichen Dank! Das ist super!!!
Noch zwei "Kleinigkeiten":
- Wenn man Namen in der Liste nachträglich nocheinmal verändert - kann man die Tabellenblätter durch nochmaliges Auslösen auch aktualisieren lassen?
- Es stehen noch weitere Informationen zu den Namen in der Liste, die nun noch in das jeweils in das neue Tabellenblatt eingefügt werden müssen. Diese Informationen stehen in der Liste von C5:M5 bzw. auch wieder offene Anzahl bis in die letzte Tabellenzeile. Diese müssten in das neue Tabellenblatt, dass nach dem Muster-Tabellenblatt entstand in die Zellen C4:M4.
Über Deine erneute Hilfe würde ich mich sehr freuen! Danke!!!
Chris
Anzeige
AW: Was ist der Fehler?
16.01.2017 16:41:14
UweD
Hallo
die 2. Kleinigkeit...
Sub Erstellen()
    Dim SP As Integer, ZE As Integer, LR As Long, i As Long
    Dim NT As Worksheet, NeueTabelle As String
    SP = 3 'Spalte C 
    ZE = 5 'ab Zeile 
    With Worksheets("Liste")
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte C 

        For i = ZE To LR
            If Not IsEmpty(.Cells(i, SP)) Then
                NeueTabelle = .Cells(i, SP) & " " & .Cells(i, SP + 1)
                Sheets("Muster").Copy After:=Sheets(Sheets.Count)
                Set NT = ActiveSheet
                Application.DisplayAlerts = False
                On Error Resume Next: Sheets(NeueTabelle).Delete: On Error GoTo 0
                Application.DisplayAlerts = True 'Systemeldungen wieder einschalten 
                NT.Name = NeueTabelle 'neue Tabelle (= letztes Blatt der Mappe) umbenennen 
                NT.Range("C4:M4").Value = .Range(.Cells(i, 3), .Cells(i, 13)).Value
            End If
        Next
    End With
    
    MsgBox "Fertig."
End Sub

Bei 1.
- muss der Eingabebereich in C:D überwacht werden usw.
- Der Wert, der vorher dort stand ermittelt werden (über undo)
- prüfen, ob es das Alte Blatt gibt
- nochmal undo
- Das alte Blatt umbenannt werden
= das ist mir jetzt zu viel. (deshalb offen)
LG UweD
Anzeige
AW: Was ist der Fehler?
17.01.2017 08:40:17
chris
WOW SUPER!!!!
Darauf wäre ich nie gekommen... das ist eine sehr große hilfe!!!
VIELEN DANK!
Gruß Chris

108 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige