Tabellenspalten in neue Tabelle kopieren

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Jay15.

    Tabellenspalten in neue Tabelle kopieren

    Hallo ihr Lieben,

    befasse mich zum ersten mal mit VBA und bin noch etwas hilflos.

    Ich habe folgendes Problem: Ich habe eine Tabelle(STückliste) in der die benötigten Komponenten eingetragen werden können. Diese Einträge sollen ausgelesen werden und in einer anderen Tabelle eingefügt werden.

    Nach einem erneuten Eintrag sollen die Stücklisten Werte wieder in die Tabelle übertragen werden, diesmal aber eine Spalte weiter nach links. Sozusagen Version1,2,...

    Ich habe vorallendingen noch das Problem mit dem Weiterspringen in eine neue Spalte.



    Ich bin über jede Hilfe dankbar. :)
    Hallo

    schonmal Danke :) Das hat mir sehr geholfen.

    Ich habe jetzt noch ein Problem beim Einfügen. Wahrscheinlich ist das eigentlich ganz banal, aber wie gesagt ich bin noch Anfänger. In dem Buch, das ich habe, steht immer ActiveSheet.Paste... muss ich dort den Namen meines Tabellenblattes eintragen?


    Visual Basic-Quellcode

    1. Sub neu()
    2. Set NextCell = Cells(5, Columns.Count).End(xlToLeft).Offset(0, 1)
    3. Range("A:A").Select
    4. Selection.Cut
    5. NextCell.Select
    6. Tabelle1.Paste
    7. End Sub


    Danke :)
    Was um Himmels Willen für ein Buch verwendest du?
    Wirf es weg!

    In einem Programm haben Ausdrücke wie .Select .Activate .Paste Selection. ActiveSheet. (bis auf ganz wenige Ausnahmen) nichts verloren.
    Das sind Relikte des Macrorecorders, der während der Aufnahme den nächsten Schritt des Benutzers noch nicht kennt und deshalb diese Methoden und Objekte als Hilfsmittel für die Zwischenspeicherung verwendet.

    Objekte immer direkt adressieren!
    Und direkt kopieren, nicht über den Umweg des PasteBuffers!

    Visual Basic-Quellcode

    1. Range("A1:B1").Copy Cells(5, Columns.Count).End(xlToLeft).Offset(0, 1)
    oder bei einer einzelnen Zelle einfach zuweisen

    Visual Basic-Quellcode

    1. Cells(5, Columns.Count).End(xlToLeft).Offset(0, 1).Value = Range("A1").Value


    Und wenn du den Code nicht in ein Modul, sondern in den Codebereich des Arbeitsblatt packst, musst du das Sheet auch nicht explizit adressieren.
    Ansonsten eben mit Konstruktionen wie Sheets("Tabelle1").Range("A1") oder Tabelle2.Cells(1,2)
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()