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

4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren

Forumthread: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren

4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
18.04.2024 21:09:11
JoshExcel
Hallo zusammen,

ich hoffe ihr könnt mir weiterhelfen!?
Ich versuche per VBA aus einer intelligenten/smarten Tabelle, welche 10 oder mehr Spalten hat, die ersten 4 Spalten in eine andere intelligenten/smarten Tabelle zukopieren.
Das zusätzliche Problem ist, dass nur die angezeigten Zeilen von der Tabelle kopiert werden sollen (wenn Filter gesetzte sind). Dies habe ich schon herausgefunden, dass man hierfür "xlCellTypeVisible" nutzen muss.

Aktuell sieht mein Code wie folgt aus :



Option Explicit
Sub Kopieren()
Worksheets(1).ListObjects("TabelleKunden").ListColumns(2).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy Destination:=Worksheets(2).ListObjects("TabelleAuswertung").ListColumns(1)
End Sub


Fehler = Laufzeitfehler 9

Könnt ihr mir bitte weiterhelfen mit einem funktionierenden Code?

Danke und bis bald
Josh
Anzeige
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
18.04.2024 21:34:17
Onur
Dann poste eine Datei dazu.
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
18.04.2024 21:35:55
JoshExcel
Die kann ich leider nicht posten, wegen Datenschutz.
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
18.04.2024 22:00:01
Onur
Ich brauch nicht deine Daten, schreib einfach Micky Maus rein !
Ich schrieb "EINE Datei" und nicht "deine Datei".
Anzeige
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
18.04.2024 22:32:49
JoshExcel
Habe eine Datei genommen, welche frei erhältlich war zum testen.
Es ist ein Filter gesetzt. nur die gefilterten Daten sollen kopiert werden in die 2. Tabelle auf dem 2. Sheet und auch nur die ersten 4 Spalten.

https://www.herber.de/bbs/user/168847.xlsm
Anzeige
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
19.04.2024 00:46:41
ralf_b
falls du die Listobjects= intelligenten Tabellen nutzen willst.
Sub Makro2()

Dim rng
Set rng = Sheets("Tabelle1").Range("TabelleKunden[[Auftragsdatum]:[Artikelgruppe]]")
Set rng = rng.SpecialCells(xlCellTypeVisible)
With Sheets("Tabelle2").ListObjects(2)
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
rng.Copy .Range(2, 1)
End With
End Sub
Anzeige
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
19.04.2024 09:51:22
JoshExcel
Eure Codes funktionieren in der Beispieldatei einwandfrei.
Ich muss die Variante von @ralf_b verwenden. Grund ist, dass die intelligenten Tabellen nicht immer an der selben Stelle sind und ich somit nicht feste Zellen verwenden kann in dem vba-Code.

Ich habe den Code in meine original Exceldatei übertragen. Wenn ich den Code ausführe, dann bekomme ich aber immer einen Fehler :
"Laufzeitfehler 1004:
Anwendungs- oder objektdefinierter Fehler"

Vermutlich liegt es daran, dass in der original Excel die Tabellenüberschriften keine "einfachen" sind, welche nur aus einem Wort bestehen, sondern aus mehreren Wörtern mit Textumbruch.
Sorry, aber das hatte ich nicht bedacht, bei der Auswahl einer Beispieldatei. Hier noch einmal die Beispieldatei mit den angepassten Überschriften: https://www.herber.de/bbs/user/168851.xlsm

Ich hatte es jetzt schon mit unterschiedlichen Varianten versucht, die sich nach meinem Verständnis ergeben haben - Aber leider ohne Erfolg. (die 2 auskommentierten Zeilen sind mein Versuch gewesen)


Option Explicit
Sub Kopieren()
Dim rng
Set rng = Sheets("Tabelle1").Range("TabelleKunden[[Auftragsdatum/Eingang]:[Artikelgruppe/Group]]")
'Set rng = Sheets("Tabelle1").Range("TabelleKunden[[1]:[4]]")
'Set rng = Sheets("Tabelle1").Range("TabelleKunden[1:4]")
Set rng = rng.SpecialCells(xlCellTypeVisible)
With Sheets("Tabelle2").ListObjects("TabelleAuswertung")
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
rng.Copy .Range(2, 1)
End With

End Sub

Private Sub CommandButton1_Click()
Call Kopieren
End Sub


Könntet ihr mir bitte weiterhelfen?

Gruß
Josh
Anzeige
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
19.04.2024 10:20:26
ralf_b


With Sheets("Tabelle1").ListObjects("TabelleKunden")
Set rng = .DataBodyRange.Resize(.ListRows.Count, 4)
End With
AW: 4 Spalten aus smarter Tabelle in andere smarte Tab. kopieren
19.04.2024 10:40:45
JoshExcel
Vielen Dank. Es funktioniert.
Ohne Dich hätte ich es nicht hinbekommen!

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige