Office: VBA - Datensätze ans Ende einer anderen Tabelle kopieren

Helfe beim Thema VBA - Datensätze ans Ende einer anderen Tabelle kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von 4rndtus, 13. März 2024.

  1. 4rndtus Neuer User

    VBA - Datensätze ans Ende einer anderen Tabelle kopieren


    Hallo zusammen,


    ich habe gerade eine "Abrechnungs"-Datei für einen Kindergartenbasar erstellt. Es wäre klasse, wenn man per Schaltfläche die Datensätze aus der Tabelle "Kaeufer" ans Ende der Tabelle "Verkaeufe" kopieren könnte und den Tabelleninhalt in Tabelle "Kaeufer" wieder löscht.

    Für Hilfe wäre ich sehr dankbar!

    Vielen Dank!
     
    4rndtus, 13. März 2024
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    das kannst du z.B. mit folgendem Makro realisieren:

    Code:
    Sub Verkaeufe()
        Dim lngLetzte1 As Long
        Dim lngLetzte2 As Long
        lngLetzte1 = Cells(Rows.Count, 3).End(xlUp).End(xlUp).Row
        lngLetzte2 = Application.Max(Columns(7)) + 8
        Range(Cells(8, 3), Cells(lngLetzte1, 4)).Copy
        Cells(lngLetzte2, 8).PasteSpecial Paste:=xlValues
        Range(Cells(8, 3), Cells(lngLetzte1, 4)).ClearContents
    End Sub


    VBA - Datensätze ans Ende einer anderen Tabelle kopieren GrußformelVBA - Datensätze ans Ende einer anderen Tabelle kopieren Beverly's Excel - Inn
     
    Beverly, 14. März 2024
    #2
  3. Exl121150 Erfahrener User
    Hallo,

    1) ich weiß nicht, wie du dir das vorgestellt hast: ein Arbeitsblatt, das kennwortgeschützt ist, hier hochzuladen. Zum Glück wusste ich, wie man solch überflüssigen Kennwortschutz entfernt, ohne das Kennwort zu kennen.

    2) Im Arbeitsblatt hast du 3 strukturierte Tabellen eingefügt mit jeder Menge Leerzeilen. Bei strukturierten Tabellen tut man das nicht, Leerzeilen (quasi als Vorratszeilen) anzufügen - es ist schade, um den so vernichteten Plattenspeicher durch unnötiges Aufblähen der Excel-Datei. Ich habe daher die Tabellenleerzeilen entfernt.

    3) Legt man eine strukturierte Tabelle an, was durchaus viele Vorteile hat, so sollte man den Standard-Tabellennamen, den Excel dabei vergibt, abändern durch einen aussagekräftigen Tabellennamen.
    Also statt "Tabelle1" zB. "tbKäufer" bzw. statt "Tabelle2" zB. "tbVerkäufe" und statt "Tabelle3" zB. "tbAbrechnung". Dann weiß man auch in einem halben Jahr, wenn man sich nicht mehr so genau an alle Details der Datei erinnert, sofort, um welche Tabelle es sich handelt.
    Ich habe daher vorgenannte Namensänderung durchgeführt.

    4) Ferner habe ich die Formel, die in der 1. Spalte von "tbVerkäufe" enthalten ist,
    von =WENN(H8>0;1;"") bzw. =WENN(H9>0;G8+1;"") abgeändert auf
    die einheitliche Formel =WENN(H8>0;N(G7)+1;"") usw.
    Damit gibt es in dieser Spalte keine Formelinkonsistenz und der Spalteninhalt wird automatisch ergänzt, sobald weitere Zeilen an die Tabelle angefügt werden - wie es ja auch durch das nachfolgende Makro geschieht.

    4) Ich habe in das allgemeine VBA-Codemodul "Modul2" folgendes Makro eingefügt:
    Code:
    Option Explicit
    
    Sub AnfügenVerkäufe()
      
       Dim ws As Worksheet
       Dim lstObj1 As ListObject, lstObj2 As ListObject
       Dim rng1 As Range, rng2 As Range
       Dim rowCt1 As Long, rowCt2 As Long, Zl As Long
      
       Set ws = ActiveSheet
     ' ws.Unprotect Password:=""
      
       Set lstObj1 = ws.ListObjects("tbKäufer")   'Tabelle1 -> tbKäufer
       Set lstObj2 = ws.ListObjects("tbVerkäufe") 'Tabelle2 -> tbVerkäufe
      
       Set rng1 = lstObj1.DataBodyRange
       Set rng2 = lstObj2.DataBodyRange
       rowCt1 = lstObj1.ListRows.Count
       rowCt2 = lstObj2.ListRows.Count
      
       rng1.Cut Destination:=rng2.Resize(1, 1).Offset(rowCt2, 1)
      
       For Zl = 1 To rowCt1
         lstObj1.ListRows(1).Delete
       Next Zl
      
     ' ws.Protect Password:=""
      
    End Sub
    

    Die beiden Makrozeilen (wovon die erste den Arbeitsblattschutz aufhebt und die zweite den Arbeitsblattschutz wieder einführt) habe ich als Kommentarzeilen eingefügt. Falls du den Arbeitsblattschutz wieder haben möchtest, müsstest du das Hochkomma am Anfang der Zeile entfernen (und ferner das Passwort am Ende der Zeile zwischen den beiden Anführungszeichen im Klartext einfügen). Welchen Schutz das dann bieten sollte, musst du selbst wissen.

    5) Ferner habe ich, wie von dir gewünscht, oberhalb der Tabelle "tbVerkäufe" einen Button "Käufer -> Verkäufe" eingefügt und ihn mit obigem Makro verknüpft.
     
    Exl121150, 14. März 2024
    #3
  4. Beverly
    Beverly Erfahrener User

    VBA - Datensätze ans Ende einer anderen Tabelle kopieren

    Für die Realisierung der Fragestellung muss man keinen Blattschutz aufheben - siehe mein Code...


    VBA - Datensätze ans Ende einer anderen Tabelle kopieren GrußformelVBA - Datensätze ans Ende einer anderen Tabelle kopieren Beverly's Excel - Inn
     
    Beverly, 14. März 2024
    #4
Thema:

VBA - Datensätze ans Ende einer anderen Tabelle kopieren

Die Seite wird geladen...
  1. VBA - Datensätze ans Ende einer anderen Tabelle kopieren - Similar Threads - VBA Datensätze ans

  2. Im Endlosformular aktiven Datensatz hervorheben

    in Microsoft Access Hilfe
    Im Endlosformular aktiven Datensatz hervorheben: Hallo liebe Mitglieder. Eigentlich benötige ich was ganz einfaches... Ich lasse mir meine Datensätze (Filme) in einem Endlosformular anzeigen. Jeder Datensatz hat diverse Buttons. Klicke ich auf...
  3. Im Formular mit VBA-Code in Datensätzen blättern

    in Microsoft Access Hilfe
    Im Formular mit VBA-Code in Datensätzen blättern: Hallo Forum, wie kann ich in einem Formular mit VBA-Code nach Datensätzen blättern ? ich möchte in einem numerischen Feld den ersten Datensatz finden, in dem das Feld leer ist. Wie sieht eine...
  4. Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen

    in Microsoft Access Hilfe
    Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen: Hallo zusammen, ich stehe gerade vor dem Problem, dass ich die Datensätze zwischen zwei Tabellen nicht verknüpfen kann. Konkret habe ich die beiden Tabellen tblEigenschaft und tblBasis. In der...
  5. VBA: Hinzufügen von Datensätzen zu einer bestehenden Tabelle

    in Microsoft Access Hilfe
    VBA: Hinzufügen von Datensätzen zu einer bestehenden Tabelle: Hallo, ich möchte zum ersten mal mit loop und einer Wenn-Bedingung mit VBA Datensätze (Felder) aus einer Tabelle in eine andere Tabelle übernehmen und komme nicht weiter. Vielleicht kann mir...
  6. Mit VBA aus geraden und ungeraden Zeilen neuen Datensatz in neuem Blatt erstellen.

    in Microsoft Excel Hilfe
    Mit VBA aus geraden und ungeraden Zeilen neuen Datensatz in neuem Blatt erstellen.: Problem: Habe ein Excelsheet, bei dem ein Datensatz immer aus zwei Zeilen zu je 9 Zellen besteht. Um das ausweren zu können, müsste immer die ungerade Zeile an die obige Zeile angehängt werden. Am...
  7. Datensätze in Bericht nach Anzahl sortieren (VBA)

    in Microsoft Access Hilfe
    Datensätze in Bericht nach Anzahl sortieren (VBA): Hallo liebes Forum! ich lasse mir mit Hilfe eines Suchformulars einen Bericht ausgeben, in dem die Datensätze gruppiert dargestellt werden. Zusätzlich lasse ich mir im Kopfbereich mit einem...
  8. VBA: Automatisches Hinzufügen von Datensätze auf Basis einer Abfrage

    in Microsoft Access Hilfe
    VBA: Automatisches Hinzufügen von Datensätze auf Basis einer Abfrage: Hallo zusammen, ich baue gerade eine Datenbank zur Erstellung von Reisekostenrechnungen. Reisekosten setzen sich zusammen aus Fahrt-, Unterkunfts- und Reisenebenkosten sowie...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden