Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Via Klick neue Tabelle erstellen und befüllen

VBA Via Klick neue Tabelle erstellen und befüllen
19.12.2019 22:05:41
Mexcel
Hallo ihr lieben, ich brauche mal wieder euer Schwarmwissen.
Ich habe ein Workbook um meine Stundenerfassung zu bewerkstelligen.
Darin habe ich mehrere Einträge für Tage bzw tätigkeit sowie auch eine Angabe der aktuellen KW und des Datums von bis.
Ich möchtet nun aus dieser ersten Tabelle, vie Button (schon vorhanden) eine neue Tabelle erstellen(schon vorhanden) die KW in der Vorlage um 1 erhöhen(schon vorhanden) und die neue Sheet erstellen mit dem Namen der aktuellen KW(schon vorhanden). Danach soll der Bereich A1:N25 in die neuer Sheet kopiert werden. Wie kann ich das in mein Makro einpflegen?
  • 
    Sub Fertig Click()
    Dim Vorlage As Worksheet
    Dim Bereich As String
    Dim Zelle As Range
    Dim Tabelle As Worksheet
    Bereich = "J2"
    For Each Zelle In ActiveSheet.Range (Bereich).Cells
    Set Tabelle = Sheets.Add (After:=Sheets (Sheets.Count))
    Tabelle.Name Range ("J2 ".Value = Range ("J2").Value +1
    Next Zelle
    End Sub
    

  • Anzeige

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: VBA Via Klick neue Tabelle erstellen und befüllen
    21.12.2019 09:10:18
    Oberschlumpf
    Hi,
    zeig mal bitte per Upload eine Bsp-Excel-Datei mit genügend Bsp-Daten.
    Die Datei muss genau so aussehen (vom Aufbau) wie deine Originaldatei.
    Ciao
    Thorsten
    AW: VBA Via Klick neue Tabelle erstellen und befüllen
    21.12.2019 09:23:28
    fcs
    Hallo Mexcel,
    so ganz komm ich mit deinem Makro-Entwurf nicht klar.
    Nach meinem Verständnis müsste gemäß deiner Beschreibung das Makro etwa wie folgt aussehen,
    LG
    Franz
    Sub Fertig_Click()
    Dim wkb As Workbook
    Dim Vorlage As Worksheet
    Dim Bereich As String
    Dim Zelle As Range
    Dim Tabelle As Worksheet
    Set wkb = ActiveWorkbook
    Bereich = "J2"
    Set Vorlage = wkb.Worksheets("Vorlage") 'Name Anpassen
    For Each Zelle In Vorlage.Range(Bereich).Cells
    With wkb
    Set Tabelle = .Sheets.Add(After:=.Sheets(.Sheets.Count))
    End With
    Vorlage.Range("J2").Value = Vorlage.Range("J2").Value + 1
    Tabelle.Name = Vorlage.Range("J2").Text
    Vorlage.Range("A1:N25").Copy
    With Tabelle.Range("A1")
    .PasteSpecial Paste:=xlPasteColumnWidths
    .PasteSpecial Paste:=xlPasteAll
    End With
    Tabelle.Range("A1").Select
    Next Zelle
    End Sub
    

    Anzeige
    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Entdecke relevante Threads

    Schau dir verwandte Threads basierend auf dem aktuellen Thema an

    Alle relevanten Threads mit Inhaltsvorschau entdecken
    Anzeige
    Anzeige

    Infobox / Tutorial

    VBA zum Erstellen und Befüllen von Tabellen in Excel


    Schritt-für-Schritt-Anleitung

    Um eine neue Tabelle in Excel via VBA zu erstellen und zu befüllen, kannst Du folgenden Schritten folgen:

    1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
    2. Modul hinzufügen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.
    3. Code einfügen: Füge den folgenden VBA-Code in das Modul ein:
    Sub Fertig_Click()
        Dim wkb As Workbook
        Dim Vorlage As Worksheet
        Dim Bereich As String
        Dim Zelle As Range
        Dim Tabelle As Worksheet
        Set wkb = ActiveWorkbook
        Bereich = "J2"
        Set Vorlage = wkb.Worksheets("Vorlage") ' Name anpassen
        For Each Zelle In Vorlage.Range(Bereich).Cells
            Set Tabelle = wkb.Sheets.Add(After:=wkb.Sheets(wkb.Sheets.Count))
            Vorlage.Range("J2").Value = Vorlage.Range("J2").Value + 1
            Tabelle.Name = Vorlage.Range("J2").Text
            Vorlage.Range("A1:N25").Copy
            With Tabelle.Range("A1")
                .PasteSpecial Paste:=xlPasteColumnWidths
                .PasteSpecial Paste:=xlPasteAll
            End With
            Tabelle.Range("A1").Select
        Next Zelle
    End Sub
    1. Makro ausführen: Kehre zu Excel zurück und führe das Makro über Entwicklertools > Makros aus.

    Häufige Fehler und Lösungen

    • Fehler: "Das Tabellenblatt konnte nicht erstellt werden"
      Lösung: Stelle sicher, dass der Name der neuen Tabelle nicht bereits vorhanden ist. Excel erlaubt keine doppelten Tabellennamen.

    • Fehler: "Zugriff verweigert"
      Lösung: Überprüfe die Schreibberechtigungen für die Datei. Stelle sicher, dass die Datei nicht schreibgeschützt ist.

    • Fehler: "Ausnahmefehler"
      Lösung: Achte darauf, dass der Bereich, den Du kopieren möchtest, korrekt definiert ist (A1:N25).


    Alternative Methoden

    Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch folgende Methoden nutzen:

    • Excel-Formeln: Verwende Formeln, um Daten in eine neue Tabelle zu übertragen. Zum Beispiel kannst Du =Tabelle1!A1 in die Zelle A1 der neuen Tabelle eingeben, um den Wert von Tabelle1 zu übernehmen.

    • Power Query: Nutze Power Query, um Daten aus einer Tabelle zu importieren und in eine neue Tabelle zu transformieren.


    Praktische Beispiele

    1. Dynamisches Tabellenerstellen: Mit dem obenstehenden VBA-Code kannst Du dynamisch eine neue Tabelle anlegen und die KW um 1 erhöhen.

    2. Erstellen einer Vergleichstabelle: Du kannst das Makro anpassen, um eine Vergleichstabelle zu erstellen, indem Du verschiedene Datenbereiche in die neue Tabelle kopierst.


    Tipps für Profis

    • Debugging: Verwende Debug.Print im Code, um den Wert von Variablen während der Ausführung zu überprüfen.

    • Fehlerbehandlung: Integriere Fehlerbehandlungsroutinen mit On Error GoTo, um den Code robuster zu gestalten.

    • Makros optimieren: Reduziere die Bildschirmaktualisierung während der Ausführung mit Application.ScreenUpdating = False, um die Ausführung zu beschleunigen.


    FAQ: Häufige Fragen

    1. Kann ich die neue Tabelle auch mit Daten aus einer anderen Excel-Datei erstellen?
    Ja, du kannst den Code anpassen, um Daten aus einer anderen Datei zu importieren, indem du die Workbooks.Open Methode verwendest.

    2. Wie kann ich eine leere Tabelle zum Ausfüllen erstellen?
    Du kannst eine neue Tabelle erstellen und die gewünschten Spaltenüberschriften in der ersten Zeile manuell eingeben oder per VBA automatisieren.

    3. Ist es möglich, eine Tabelle aus einer bestehenden Tabelle zu erstellen?
    Ja, du kannst die Range.Copy Methode verwenden, um Daten aus einer bestehenden Tabelle in die neue Tabelle zu kopieren.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Entdecke mehr
    Finde genau, was du suchst

    Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

    Suche nach den besten Antworten
    Unsere beliebtesten Threads

    Entdecke unsere meistgeklickten Beiträge in der Google Suche

    Top 100 Threads jetzt ansehen
    Anzeige