Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Spalte kopieren und in letzte Zeile einfügen
03.03.2014 12:55:48
Josef
Hallo Zusammen,
wie lautet den der VBA Code, wenn ich zum Beispiel aus "Tabelle2" Spalte B2:B500 und Spalte E2:E500 in die letzte Zeile aus "Tabelle1" Spalte A und Spalte D einfügen möchte?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte kopieren und in letzte Zeile einfügen
03.03.2014 13:25:50
EtoPHG
Hallo,
z.B. so:
    With ThisWorkbook.Worksheets("Tabelle1")
ThisWorkbook.Worksheets("Tabelle2").Range("B2:B500").Copy _
Destination:=.Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
ThisWorkbook.Worksheets("Tabelle2").Range("E2:E500").Copy _
Destination:=.Cells(.Rows.Count, 4).End(xlUp).Offset(1, 0)
End With
Gruess Hansueli

AW: Spalte kopieren und in letzte Zeile einfügen
03.03.2014 13:53:00
Josef
Das funktioniert leider nur teilweise.
Spalte B2:B500 aus Tabelle2 wird richtig kopiert und richtig in Spalte A (letzte freie Zeile) in Tabelle1 eingefügt, doch mit der Spalte E2:E500 hab ich ein Problem. Diese Spalte wird kopiert und in der Tabelle2 erst nach vielen leeren Zeilen eingefügt. Woran liegt das?

Anzeige
AW: Spalte kopieren und in letzte Zeile einfügen
03.03.2014 13:57:53
EtoPHG
Hallo Josef,
Zitat:Woran liegt das? Woher soll ich das wissen? Der Code für beide Bereich sieht doch gleich aus. Aber die Arbeitsmappe und den Inhalt der Tabellen siehst nur du!
Gruess Hansueli

AW: Spalte kopieren und in letzte Zeile einfügen
03.03.2014 14:05:32
Josef
Könnte es vielleicht damit zusammenhängen, dass ich zwar den Kopierbereich E2:E500 angebe, aber nur die zellen E2:E300 befüllt sind?

Das dürfte ja wohl der Grund sein...
03.03.2014 14:07:47
EtoPHG
Josef,
Lade halt mal eine Beispielmappe hoch und sag nochmals genau und detailliert, was die Bedingungen des Kopierens von wo nach wo sind!
Gruess Hansueli

AW: Das dürfte ja wohl der Grund sein...
03.03.2014 14:48:51
Josef
Anbei meine Excel.
https://www.herber.de/bbs/user/89518.xlsm
Was ich erreichen möchte ist, dass per Commandbutton die Spalte K (ab k2) in der Tabelle "FA" gelöscht werden soll. Dann muss aus der Tabelle "Bestellübersicht" die Spalte "B" (ohne Überschrift) in die letzte Zeile von Spalte "D" im Tabellenblatt "FA", die Spalte "C" (ohne Überschrift) aus "Bestellübersicht" in die letzte Zeile von Spalte "E" im Tabellenblatt "FA" und die Spalte "E" (ohne Überschrift) aus "Bestellübersicht" in die letzte Zeile von Spalte "C" im Tabellenblatt "FA" kopiert werden. Danach muss das Datum "00.01.1900" durch "31.12.2015" in Spalte "C" aus Tabellenblatt "FA" ersetzt werden und zu guter letzt sollen die Spalten "D" und "C" aus Tabellenblatt "FA" sortiert werden (erst nach Spalte "D" dann nach Spalte "C"). Das alles hätte ich gerne in einen Commandbutton.

Anzeige
Also dann mal der Reihe nach:
03.03.2014 16:05:18
EtoPHG
Josef,
1. Lösche alle deine Makro-Codes. Es macht keinen Sinn in ListObjects (Tabellen) Formeln auf Vorrat zu füllen. Diese Formeln werden automatisch ergänzt, wenn neue Datensätze in die Tabelle eingefüllt werden.
2. Lösche in der Tabelle "FA" ab Zeile 136 alle Zeilen bis zum Ende!
3. Formatiere Spalte C in der Tabelle "Bestellübersicht" als Standard (das sind doch Zahlen und nicht Texte!)
4. Füge nur diesen Code für den Button ein. Er sollte genau das machen, was du beschrieben hast:
Private Sub CommandButton1_Click()
Dim wsQ As Worksheet
Dim lNextRow As Long
Dim lLastRow As Long
Set wsQ = ThisWorkbook.Worksheets("Bestellübersicht")
lNextRow = Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Row ' Nächste freie Zeile aufgrund  _
Spalte D
lLastRow = wsQ.Cells(wsQ.Rows.Count, 1).End(xlUp).Row      ' Letzte besetzte Zeile in  _
Quelle Spalte A
wsQ.Range(wsQ.Cells(2, 2), wsQ.Cells(lLastRow, 2)).Copy _
Destination:=Cells(lNextRow, 4)                         ' Spalte B -> D
wsQ.Range(wsQ.Cells(2, 3), wsQ.Cells(lLastRow, 3)).Copy _
Destination:=Cells(lNextRow, 5)                         ' Spalte C -> E
wsQ.Range(wsQ.Cells(2, 5), wsQ.Cells(lLastRow, 5)).Copy _
Destination:=Cells(lNextRow, 3)                         ' Spalte E -> C
Range(Cells(lNextRow, 3), Cells(lNextRow + lLastRow - 1, 3)).Replace _
What:="00.01.1900", Replacement:="31.12.2015", LookAt:= _
xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False
With ActiveSheet.ListObjects("Tabelle_Abfrage_von_NAVISION_DECK_1")
.Sort.SortFields.Clear
.Sort.SortFields.Add Key:=Range( _
.Name & "[Item No_]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.Sort.SortFields.Add Key:=Range( _
.Name & "[Due Date]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
With .Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub
Gruess Hansueli

Anzeige
AW: Also dann mal der Reihe nach:
04.03.2014 07:54:06
Josef
Hallo Hansueli,
vielen vielen Dank.
Das suchen und ersetzen funktioniert zwar nicht, doch der Rest funktioniert perfekt.

387 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige