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

Forumthread: Zeileneinfügen in verknüpften Tabellen

Zeileneinfügen in verknüpften Tabellen
01.07.2013 14:32:14
Andreas
Hallo Matze,
Hallo Forum,
jezt komme ich nach einigen Wochen Zwangspause mit meinem Anliegen nochmals zurück. Das Beispiel findet Ihr im Anhang. Ich möche von einem Stammblatt aus eine Anzahl "x" verknüpfter Tabelle (Kundenpreislisten) gleichzeitig aktualisieren. Mein Problem ist folgendes: Wenn ich einen neuen Artikel in das Stammblatt aufnehme, soll dies gleichzeitig in allen anderen Tabellen erfolgen. Gern möchte ich den neuen Artikel gezielt innerhalb der Tabelle, unterhalb eines vorhanden Artikels einfügen. Also eine neue Zeile einfügen. Wie kann ich das automatisieren.
Schon jetzt mal schönen Dank.
Gruss Andreas
https://www.herber.de/bbs/user/86147.xlsx

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeileneinfügen in verknüpften Tabellen
01.07.2013 15:14:21
Klaus
Hi Andreas,
ich würd die Neueingabe über das Stammblatt oder sonswohin FIX packen. Und dann so:
https://www.herber.de/bbs/user/86149.xlsm
Das fügt die Neuanlage jetzt unten ein, danach kannst du ja noch sortieren oder so.
Grüße,
Klaus M.vdT.

Anzeige
AW: Zeileneinfügen in verknüpften Tabellen
01.07.2013 16:09:56
fcs
Hallo Andreas,
das nachfolgende Makro fügt im Stammblatt unter der Zeile mit der aktiven Zelle im "Stammblatt" eine eine Leerzeile und in den KDPL-Blättern eine Zeile mit den entsprechenden Formeln ein.
Nach Ausführung des Makros kannst du dann die Daten im Stammblatt eingeben oder in die Leerzeile kopieren.
Gruß
Franz
Sub NeueDatenzeile_einfuegen()
Dim wksStamm As Worksheet, wksKDPL As Worksheet
Dim Zeile As Long
Zeile = ActiveCell.Row
Set wksStamm = ActiveWorkbook.Worksheets("Stammblatt")
With wksStamm
If ActiveSheet.Name = wksStamm.Name And Zeile > 1 Then
If MsgBox("Neue Datenzeile unterhalb von Zeile " & Zeile & " einfügen?", _
vbQuestion + vbOKCancel, "Neuen Artikel einfügen") = vbOK Then
.Rows(Zeile + 1).Insert
.Rows(Zeile).Copy Destination:=.Rows(Zeile + 1)
.Rows(Zeile + 1).ClearContents
For Each wksKDPL In ActiveWorkbook.Worksheets
Select Case Left(wksKDPL.Name, 4)
Case "KDPL"
With wksKDPL
.Rows(Zeile + 1).Insert
.Rows(Zeile).Copy Destination:=.Rows(Zeile + 1)
End With
End Select
Next
End If
Else
MsgBox "Makro bitte nur starten, wenn """ & wksStamm.Name _
& """ das aktive Blatt ist" & vbLf _
& "und nicht Zeile 1 aktiv ist!"
End If
End With
End Sub
Sub Datenzeile_loeschen()
Dim wksStamm As Worksheet, wksKDPL As Worksheet
Dim Zeile As Long
Set wksStamm = ActiveWorkbook.Worksheets("Stammblatt")
Zeile = ActiveCell.Row
With wksStamm
If MsgBox("Artikel: " & .Cells(Zeile, 1).Text & " " & .Cells(Zeile, 2).Text & vbLf _
& "in Zeile " & Zeile & " löschen?", _
vbQuestion + vbOKCancel, "Neuen Artikel einfügen") = vbOK Then
.Rows(Zeile).Delete
For Each wksKDPL In ActiveWorkbook.Worksheets
Select Case Left(wksKDPL.Name, 4)
Case "KDPL"
With wksKDPL
.Rows(Zeile).Delete
End With
End Select
Next
End If
Else
MsgBox "Makro bitte nur starten, wenn """ & wksStamm.Name _
& """ das aktive Blatt ist" & vbLf _
& "und nicht Zeile 1 aktiv ist!"
End If
End With
End Sub

Anzeige
evtl. reicht eine leicht abgeänderte Formel ...
02.07.2013 07:48:12
neopa
Hallo Andreas,
... mir erschließt sich zwar nicht, warum Du die die Stammdatentabelle in identischer Form und noch dazu in der gleichen Arbeitsmappe mehrfach brauchst, aber außer den aufgezeigten VBA-Lösungen käme auch nur eine kleine Modifikation der Formel in Betracht. Und zwar in A2 anstelle =Stammblatt!A2 einfach =INDEX(Stammblatt!A:A;). Diese Formel nach rechts kopieren. Das Format aus der darunterliegenden Zeile übernehmen und dann die Formelzeile entsprechend weit nach unten kopieren. Mit benutzerdefinierten Zahlenformat lassen sich auch die evtl. ungewollten 0-Werte für (noch) nicht vorhandene Werte im Stammdatenblatt ausblenden. Wenn es nicht um viele tausende Stammdatensätze handelt, wäre es zumindest eine Alternative zum VBA-Einsatz, wobei wie geschrieben mir Dein eigentliche Anliegen nicht wirklich verständlich ist.
Gruß Werner
.. , - ...
Jeder Interessent ist willkommen beim Exceltreffen 11.-13.10.2013 in Duisburg
Mehr dazu, siehe http://www.exceltreffen.de/index.php?page=230
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeileneinfügen in verknüpften Tabellen


Schritt-für-Schritt-Anleitung

Um in Excel Zeilen in verknüpfte Tabellen einzufügen, kannst Du ein VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Sub NeueDatenzeile_einfuegen()
        Dim wksStamm As Worksheet, wksKDPL As Worksheet
        Dim Zeile As Long
        Zeile = ActiveCell.Row
        Set wksStamm = ActiveWorkbook.Worksheets("Stammblatt")
    
        With wksStamm
            If ActiveSheet.Name = wksStamm.Name And Zeile > 1 Then
                If MsgBox("Neue Datenzeile unterhalb von Zeile " & Zeile & " einfügen?", _
                vbQuestion + vbOKCancel, "Neuen Artikel einfügen") = vbOK Then
                    .Rows(Zeile + 1).Insert
                    .Rows(Zeile).Copy Destination:=.Rows(Zeile + 1)
                    .Rows(Zeile + 1).ClearContents
                    For Each wksKDPL In ActiveWorkbook.Worksheets
                        Select Case Left(wksKDPL.Name, 4)
                        Case "KDPL"
                            With wksKDPL
                                .Rows(Zeile + 1).Insert
                                .Rows(Zeile).Copy Destination:=.Rows(Zeile + 1)
                            End With
                        End Select
                    Next
                End If
            Else
                MsgBox "Makro bitte nur starten, wenn """ & wksStamm.Name & """ das aktive Blatt ist" & vbLf & "und nicht Zeile 1 aktiv ist!"
            End If
        End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Wähle die Zeile aus, unter der Du die neue Zeile einfügen möchtest.

  6. Führe das Makro aus: Drücke ALT + F8, wähle NeueDatenzeile_einfuegen und klicke auf "Ausführen".

Mit diesem Makro kannst Du schnell und effizient neue Zeilen in verknüpfte Tabellen einfügen.


Häufige Fehler und Lösungen

  • Fehler: "Makro bitte nur starten, wenn 'Stammblatt' das aktive Blatt ist"

    • Lösung: Stelle sicher, dass das "Stammblatt" aktiv ist und Du nicht in Zeile 1 arbeitest.
  • Fehler: Keine Zeile wird eingefügt

    • Lösung: Überprüfe, ob Du eine Zelle in einer Zeile unterhalb von Zeile 1 ausgewählt hast.

Alternative Methoden

Wenn Du keine VBA-Makros verwenden möchtest, kannst Du eine Formel verwenden. Zum Beispiel:

  • Verwende die INDEX-Funktion: In Zelle A2 Deiner verknüpften Tabelle kannst Du die Formel =INDEX(Stammblatt!A:A; ROW()) verwenden. Diese Formel kopierst Du nach rechts und unten, um die Daten dynamisch zu verknüpfen.

Praktische Beispiele

Angenommen, Du hast eine Liste von Produkten im "Stammblatt". Um ein neues Produkt unter einem bestehenden Artikel einzufügen, wählst Du die Zeile des bestehenden Artikels und führst das Makro aus. Die neue Zeile wird direkt darunter eingefügt und die Formeln in den verknüpften Tabellen werden automatisch angepasst.


Tipps für Profis

  • Automatisierung: Du kannst das Makro so anpassen, dass es automatisch ausgeführt wird, wenn Du eine bestimmte Zelle im "Stammblatt" änderst.
  • Fehlerprotokollierung: Füge eine Fehlerprotokollierung in Dein Makro ein, um Probleme bei der Ausführung besser nachvollziehen zu können.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen?
Du kannst das Makro anpassen, indem Du die Bedingungen und Aktionen im Code änderst, z.B. welche Zeilen oder Spalten betroffen sind.

2. Funktioniert das auch in Excel Online?
Leider funktionieren VBA-Makros nicht in Excel Online. Du musst die Desktop-Version von Excel verwenden.

3. Gibt es eine Möglichkeit, mehrere Zeilen gleichzeitig einzufügen?
Ja, Du könntest die Logik im Makro erweitern, um eine Schleife zu implementieren, die mehrere Zeilen gleichzeitig einfügt.

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