Frage von RigaDone, 41

Kann man mit Basic innerhalb von Excel kopieren?

Hallo zusammen, ich brauche eure Hilfe. Ich möchte gerne in Excel eine Schaltfläche einbauen, mit der Excel automatisch Werte in ein anderes Tabellenblatt einfügt. Das Problem ist aber das bereits Daten in diesem anderen Tabellenblatt vorhanden sind, die nicht überschrieben werden dürfen. Excel soll dann eben wenn z.B. in Zelle A1-A3 bereits Daten vorhanden sind erst ab A4 weitere Daten reinkopieren. Ist das so "automatisch" möglich oder geht das nicht?

Vielen Dank :)

Expertenantwort
von Oubyi, Community-Experte für Excel, 31

Klar geht das. Z.B. so:

Sub Kopieren()
Range("A1").Copy Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End Sub

Hilft Dir das schon weiter?
Sonst frage nochmal gezielt nach.

Kommentar von RigaDone ,

danke für die schnelle antwort :) ich werde den vorschlag gleich mal testen und gib dann rckmeldung :)

Kommentar von RigaDone ,

ja so in etwa sollte es sein :) doch jetzt werden die daten aus Tabelle1 in Tabelle2 in die Spalte A1 übertragen. Geht es auch das die daten nicht immer in A1 übertragen werden sondern immer in de nächste Spalte "rechts"? also B1, C1 etc? 

Kommentar von Oubyi ,

doch jetzt werden die daten aus Tabelle1 in Tabelle2 in die Spalte A1 übertragen.

DAS war Deine Vorgebe.
Aber natürlich geht das auch mit Spalten:

Range("A1").Copy Sheets("Tabelle2").Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1)
Kommentar von RigaDone ,

Hallo, hatte die letzte zeit leider keine zeit hier wieder vorbei zu schauen. Danke für die Zeile. Habe sie ein wenig abgewandelt, damit sie in meine Liste passt. Leider funktioniert sie noch nicht ganz :) mein Problem ist das wenn ein dem Bereich "D3:I42" Teilweise keine Daten vorhanden, auch die Leeren Zellen kopiert werden. Ich möchte allerdings in der Datenbank Seite eine lückenlose Aneinanderreihung der Daten. Ist dies möglich? Würde auch gerne die Excel Datei hochladen damit es vielleicht besser versteht was ich genau brauche, weis aber nicht ob dies möglich ist :)
 

Sheets("Auswertung LP").Range("D3:I42").Copy Sheets("Datenbank").Cells(102, Columns.Count).End(xlToLeft).Offset(0, 1)
Kommentar von Oubyi ,

Hier kann man leider keine Dateien hochladen.
Ich nutze dazu immer
http://www.file-upload.net
und stelle den Link hier ein.

Aber da Du Dein Vorhaben gut beschrieben hast, denke ich, dass das nicht nötig sein wird.
Für die lückenlose Aneinanderreihung der kopierten Daten in einer Zeile ist allerdings ein etwas umfangreicherer Code nötig.
Wenn ich nichts falsch verstanden habe, ist aber auch DAS kein Problem:

Sub Kopieren()
Dim Zelle As Range
Dim Bereich As Range

Set Bereich = Sheets("Auswertung LP").Range("D3:I42")
Bereich.Copy

For Each Zelle In Bereich
If Not (IsEmpty(Zelle)) Then
Zelle.Copy Sheets("Datenbank").Cells(102, Columns.Count).End(xlToLeft).Offset(0, 1) '.PasteSpecial(xlPasteAll)
End If
Next Zelle
End Sub

Klappt es?

Kommentar von RigaDone ,

Vielen Dank jap jetzt funktioniert alles vielen Dank :)

Kommentar von Oubyi ,

Gern geschehen ☼

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten