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

Forumthread: VBA- Datensätze an letzter Stelle anfügen

VBA- Datensätze an letzter Stelle anfügen
12.05.2005 15:43:23
Karl
Hallo zusammen,
ich möchte per Vba einen Datensatz aus einer Tabelle in eine andere Datei exportieren. Dieser neue Datensatz soll aber am Ende der Tabelle eingefügt werden und nicht immer in der selben Zelle. Unten seht ihr meinen Code. Wie muß ich ihn verändern, damit der Datensatz am Ende hinzugefügt wird? Ein nächster Schritt ist, dass er den Datensatz nur dann einfügt wenn der Name des Expoteurs (steht in einer Spalte) nicht schon vorhanden ist, ansonsten soll der bestehende Datensatz überschrieben werden. Vielen Dank für Eure Hilfe.

Sub Exportieren()
' Exportieren Makro
' Makro am 12.05.2005 von xxx aufgezeichnet
Range("C35:D35").Select
Selection.Copy
Windows("Fuel.xls").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Ressourcen.xls").Activate
Range("C36:D36").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Fuel.xls").Activate
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("Ressourcen.xls").Activate
Range("G37:BH39").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Fuel.xls").Activate
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Range("A4:A5").Select
ActiveSheet.Paste
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Range("B4:B5").Select
ActiveSheet.Paste
Range("C3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(RC[3]:RC[54])"
Range("C3").Select
Selection.Copy
Range("C4").Select
ActiveSheet.Paste
Range("C5").Select
ActiveSheet.Paste
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA- Datensätze an letzter Stelle anfügen
12.05.2005 16:16:23
Martin
Hallo Karl,
den Code tue ich mir jetz nicht an, aber
1) Die Zeilennummer der ersten freien Zelle in Spalte A kannst Du mit
z = Range("A65536").End(xlUp).Row + 1
der Variablen z zuweisen. Diese kannst Du dann im Kopiervorgang verwenden. Z.B.

Sub Variabel_kopieren()
z = Range("A65536").End(xlUp).Row + 1
Range("C35:D35").Copy
Workbooks("Fuel.xls").Worksheets("Tabelle1").Cells(z, 1).PasteSpecial Paste:=xlPasteValues
End Sub

2) Lies mal dringend hier:
https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Gruß
Martin Beck
Anzeige
AW: VBA- Datensätze an letzter Stelle anfügen
12.05.2005 19:10:46
Karl
Vielen Dank, funktioniert. Habe den Hinweis verstanden!!!
AW: VBA- Datensätze an letzter Stelle anfügen
12.05.2005 16:16:58
u_
Hallo,
was ist das denn?
Du kopierst C35:D35 nach Fuel A3. Somit stehen die Daten in A3:B3. Dann kopierst du C36:D36 nach Fuel B3. B3 wird also überschrieben und die Daten stehen in B3:C3
Anschließend noch G37:BH39 nach Fuel D3:BE5. Und dann wiederum überschreibst du Fuel C3 mit einer Formel?
Ich glaube, du hast dich bei deinem Level gründlich verklickt.
Gruß
Geist ist geil!
Anzeige
AW: VBA- Datensätze an letzter Stelle anfügen
12.05.2005 16:47:09
Karl
Wer lesen kann ist klar im Vorteil. Du solltest, bevor du hir den großen Maxen machst, mal genau lesen. Sehen ist geil!!!
... und wer VBA kann, auch.
12.05.2005 23:10:36
u_
Geist ist immer noch geil!
;

Forumthreads zu verwandten Themen

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

VBA zum Exportieren von Datensätzen ans Ende einer Tabelle


Schritt-für-Schritt-Anleitung

Um einen Datensatz per VBA ans Ende einer Tabelle anzufügen, folge diesen Schritten:

  1. Zielzelle ermitteln: Bestimme zunächst die erste freie Zeile in der Zielspalte, um sicherzustellen, dass neue Daten nicht vorhandene überschreiben.

    z = Range("A65536").End(xlUp).Row + 1
  2. Daten kopieren: Kopiere die gewünschten Daten aus der Quelltabelle.

    Range("C35:D35").Copy
  3. Daten in die Zielzelle einfügen: Füge die kopierten Daten in die ermittelte Zielzelle ein.

    Workbooks("Fuel.xls").Worksheets("Tabelle1").Cells(z, 1).PasteSpecial Paste:=xlPasteValues
  4. Überprüfung auf Duplikate: Füge eine Überprüfung hinzu, um sicherzustellen, dass der Name des Exporteurs nicht schon vorhanden ist. Wenn er vorhanden ist, überschreibe den bestehenden Datensatz.

  5. Makro ausführen: Starte dein Makro und beobachte die Ergebnisse.


Häufige Fehler und Lösungen

  • Fehler: Der Datensatz wird nicht am Ende angefügt.

    • Lösung: Stelle sicher, dass du die richtige Zeile für die Einfügung ermittelst. Verwende End(xlUp) korrekt.
  • Fehler: Daten werden überschrieben.

    • Lösung: Implementiere eine Duplikatsüberprüfung basierend auf dem Namen des Exporteurs.

Alternative Methoden

Anstatt VBA zu verwenden, kannst du auch die Power Query-Funktion in Excel nutzen, um Daten zu importieren und zu transformieren. Es ermöglicht dir, Daten aus verschiedenen Quellen zu kombinieren und ans Ende einer Tabelle anzuhängen, ohne VBA zu programmieren.


Praktische Beispiele

Hier ein Beispiel-Makro, das die oben genannten Schritte zusammenfasst:

Sub Exportieren()
    Dim z As Long
    z = Range("A65536").End(xlUp).Row + 1

    ' Kopiere Daten
    Range("C35:D35").Copy
    Workbooks("Fuel.xls").Worksheets("Tabelle1").Cells(z, 1).PasteSpecial Paste:=xlPasteValues

    ' Duplikatsüberprüfung (Beispiel)
    Dim ws As Worksheet
    Set ws = Workbooks("Fuel.xls").Worksheets("Tabelle1")
    Dim nameExists As Boolean
    nameExists = False

    For i = 1 To z
        If ws.Cells(i, 1).Value = Range("C35").Value Then
            nameExists = True
            Exit For
        End If
    Next i

    If Not nameExists Then
        ' Füge neuen Datensatz hinzu
    Else
        ' Überschreibe bestehenden Datensatz
    End If
End Sub

Tipps für Profis

  • Nutze Fehlerbehandlung in deinem VBA-Code, um Probleme elegant abzufangen und zu lösen.
  • Speichere regelmäßig deine Arbeit und teste dein Makro in einer Kopie deiner Datei, um Datenverlust zu vermeiden.
  • Überlege, ob die Verwendung von Excel-Formeln in Kombination mit VBA sinnvoll ist, um die Datenverarbeitung zu optimieren.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr als nur einen Datensatz zu exportieren?
Du kannst eine Schleife einfügen, um mehrere Zeilen zu kopieren und sie entsprechend zu verarbeiten.

2. Funktioniert dieser VBA-Code in älteren Excel-Versionen?
Ja, die grundlegenden Funktionen sind in den meisten Excel-Versionen verfügbar, jedoch kann die maximale Zeilenzahl in älteren Versionen variieren.

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