Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeile per Makro in weiteres Tabellenblatt einfügen

Zeile per Makro in weiteres Tabellenblatt einfügen
30.08.2019 08:44:42
gelee93
Hallo Zusammen,
ich brauche dringend Hilfe.
ich habe ein Hauptblatt, bei dem ich alle Daten Eintrage. Auf dem nächsten TabellenBlatt (7_1) ist meine Auswertung, die mit Formeln hinterlegt ist.
Ich habe es soweit, dass wenn ich im ersten Tabellenblatt eine Zeile einfüge, er in der Auswertung an gleicher Stelle eine Zeile einfügt. Jetzt soll er die Formeln von der Zeile oberhalb in die leere Zeile einfügen.
Mein VBA-Code ist:

Sub NeueZeile()
Dim Zl As Long
Zl = ActiveCell.Row
ActiveCell.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
With Sheets(" 7_1")
.Cells(Zl + 9, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End With
End Sub

Ich verschiebe die Zeilen um 9, da der Tabellenkopf etwas anders aussieht bei den beiden Blättern.
Besten Dank im vorraus, und beste Grüße,
Gelee93
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
30.08.2019 09:26:17
GerdL
Moin! (Hier sind Vornamen üblich)
Sub NeueZeile()
Dim Zl As Long
Zl = ActiveCell.Row
ActiveCell.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
With Sheets(" 7_1")
.Cells(Zl + 9, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
For Each Zelle In .Range(.Cells(Zl + 8, 1), .Cells(Zl + 8, .Columns.Count).End(xlToLeft))
If Zelle.HasFormula Then
Zelle.Copy
Zelle.Offset(1, 0).PasteSpecial xlPasteFormulas
End If
Next
Application.CutCopyMode = False
End With
End Sub

Gruß Gerd
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
30.08.2019 10:23:42
gelee93
Danke Gerd,
das klappt schon mal super. Nun noch die frage, ich habe mehrere Tabellenblätter für die Auswertung, ist es möglich es zu beschreiben, dass dieses Makro auf alle Blätter außer auf 2 angewendet werden soll, oder muss ich das für jedes Blatt definieren?
Und mir ist gerade noch aufgefallen, dass ich bei dem Hauptblatt in der Spalte AA die Summe aus den Spalten F:X ausgebe, dass kann man doch bestimmt auch in dem Makro schon vordefinieren.
Besten Dank und Gruß,
Jelle (jetzt mit Vornamen ;-))
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
30.08.2019 13:39:31
GerdL
Hallo Jelle,
ich bin für eine positive Prüfung der relevanten Auswertungstabellen.
Irgendetwas wird schon als Kriterium geeignet sein.
Sub NeueZeile()
Dim Zl As Long, Sh As Object
Zl = ActiveCell.Row
ActiveCell.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Cells(Zl, 27).Formula = "=SUM(" & Range("F" & Zl & ":X" & Zl).Address & ")" 'Summenformel  _
einfügen
For Each Sh In ActiveWorkbook.Sheets
With Sh
If Sh.Cells(1, 1) = "Überschrift1" Then ' bearbeite alle Blätter mit diesem Wert in A1 , _
ggf. anpassen
.Cells(Zl + 9, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
For Each Zelle In .Range(.Cells(Zl + 8, 1), .Cells(Zl + 8, .Columns.Count).End(xlToLeft))
If Zelle.HasFormula Then
Zelle.Copy
Zelle.Offset(1, 0).PasteSpecial xlPasteFormulas
End If
Application.CutCopyMode = False
Next
End If
End With
Next
End Sub
Gruß Gerd
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
02.09.2019 08:04:17
gelee93
Hallo Gerd,
die Abfrage in A1 finde ich gut. Das klappt auch super.
Jetzt habe ich nur das Problem mit den kopierten Zeilen, ich bin davon ausgegangen, dass die Formeln sich anpassen, d.h. in der zu kopierenden Zeile steht =A4, dann soll in der neuen Zeile =A5 stehen. Dieses ist leider nicht so. Ist das auch möglich, dass die kopierten Zeilen sich so anpassen?
Beste Grüße,
Jelle
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
03.09.2019 01:35:45
Piet
Hallo Jelle
wie sehen deine Formeln aus? Hast du Absolute oder Relative Adressierung? Absolute bleibt immer konstant!!
Das erkennst du in der Formel am $ Zeichen wie z.B: - =SUMME($J$2:$J$100) - Da bleibt die Formel beim verschiebn bestehen!
Wenn du die Zeile verschieben willst musst du die $ Zeichen vor der Zeile entfernen! Bei Spalten Verschiebung vor der Spalte.
mfg Piet
Anzeige
AW: Zeile per Makro in weiteres Tabellenblatt einfügen
03.09.2019 15:13:30
gelee93
Hallo Piet,
nein das war nicht das Problem, das Problem war die Anordnung der Tabellenblätter. Nur auf dem ersten Tabellenblatt hatte es nicht gestimmt, da es auf Daten zugegriffen hat, welche noch nicht existiert haben. Da sie noch nicht eingefügt wurden durch das Makro. Jetzt passt alles.
Beste Grüße,
Jelle
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeile per Makro in weiteres Tabellenblatt einfügen


Schritt-für-Schritt-Anleitung

Um in Excel eine Zeile per Makro in ein weiteres Tabellenblatt einzufügen, kannst du folgenden VBA-Code verwenden. Dieser Code ermöglicht es dir, eine neue Zeile in deinem Hauptblatt einzufügen und gleichzeitig die gleiche Zeile in dem Auswertungsblatt zu erstellen, inklusive der Übertragung von Formeln.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Füge den folgenden VBA-Code in das Modul ein:

    Sub NeueZeile()
       Dim Zl As Long, Sh As Object
       Zl = ActiveCell.Row
       ActiveCell.EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    
       Cells(Zl, 27).Formula = "=SUM(" & Range("F" & Zl & ":X" & Zl).Address & ")" 'Summenformel einfügen
    
       For Each Sh In ActiveWorkbook.Sheets
           With Sh
               If Sh.Cells(1, 1) = "Überschrift1" Then ' bearbeite Blätter mit diesem Wert in A1
                   .Cells(Zl + 9, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                   For Each Zelle In .Range(.Cells(Zl + 8, 1), .Cells(Zl + 8, .Columns.Count).End(xlToLeft))
                       If Zelle.HasFormula Then
                           Zelle.Copy
                           Zelle.Offset(1, 0).PasteSpecial xlPasteFormulas
                       End If
                   Next
                   Application.CutCopyMode = False
               End If
           End With
       Next
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Um das Makro auszuführen, wähle eine Zelle in der Zeile aus, die du einfügen möchtest, und drücke ALT + F8, wähle NeueZeile und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Formeln werden nicht übertragen: Stelle sicher, dass die Zellen in der Zeile, die du kopierst, tatsächlich Formeln enthalten. Überprüfe auch, ob die Adressierung in den Formeln korrekt ist (relative vs. absolute Adressierung).

  • Makro funktioniert nicht auf allen Blättern: Wenn du das Makro so erweitern möchtest, dass es nur auf bestimmten Blättern ausgeführt wird, musst du die Bedingung anpassen, die die aktiven Blätter überprüft.


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du die Funktion "Zeile einfügen" manuell in Excel nutzen. Gehe dafür in die Menüleiste, wähle Start, dann Einfügen und klicke auf Zeilen einfügen. Dies ist jedoch weniger effizient, wenn du viele Daten verwalten musst und automatisierte Prozesse benötigst.


Praktische Beispiele

  1. Einfügen von Zeilen mit Formeln: Nehmen wir an, du hast in deinem Hauptblatt eine Formel in Zelle F1. Wenn du nun eine neue Zeile einfügst, wird die Formel in das Auswertungsblatt übertragen, wobei sie automatisch angepasst wird.

  2. Erstellen von Summenformeln: Der oben angegebene VBA-Code fügt in der Spalte AA die Summe der Spalten F bis X ein, wenn du eine neue Zeile hinzufügst.


Tipps für Profis

  • Verwende Kommentare im VBA-Code, um den Code verständlicher zu machen. Dies ist besonders hilfreich, wenn du oder jemand anderes den Code später anpassen muss.
  • Teste dein Makro in einer Kopie deiner Arbeitsmappe, um sicherzustellen, dass keine Daten verloren gehen.
  • Nutze die Option Explicit-Deklaration am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert werden, bevor sie verwendet werden.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um auf spezifische Blätter zuzugreifen?
Ja, du kannst eine Bedingung hinzufügen, die prüft, ob der Name des aktuellen Blattes mit dem gewünschten Blatt übereinstimmt.

2. Warum werden meine Formeln nicht angepasst, wenn ich Zeilen einfüge?
Prüfe, ob deine Formeln absolute Adressierung verwenden (z.B. $A$1). Entferne das $-Zeichen, um die Adressierung relativ zu machen, damit sie sich anpassen kann.

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