Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Tabelle Kopieren und in anderes Datenblatt einfügenVBA
#1
Hallo zusammen,

kleines Problem,
bei drücken von commandButton1 will ich die Tabelle in Datenblatt1 kopieren und in Datenblatt2 einfügen.

Die Daten der Tabelle verändern sich jeden Tag und der Kopiervorgang muss auch täglich von Datenblatt1 zu Datenblatt 2 gemacht wird.

Zum Beispiel: die Daten vom zweiten Tag müssen nicht die Daten vom ersten Tag überschrieben werden zwecks Auswertung der Daten.

Der Bereich "A4:R4" der Tabelle bleibt konstant, aber die Zeilen verändern sich jeden Tag (manchmal 17, 25,  oder 70…..)


Mit dem folgenden Code kann ich nur einmal kopiert und wenn ich den Kopiervorgang wiederhole werden die ersten Daten leider überschrieben:

Sub Button1()
'
' Button1 Makro
'
 
'
    Range("A4:R17").Select
    Selection.Copy
    Sheets("Tabelle2").Select
    Range("A4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
End Sub
 
Eine Excel-Datei ist im Anhang als Beispiel
Der Code dafür ist sicherlich einfach, aber ich weiß leider nicht wie.
Für Ihre Bemühungen Danke ich Ihnen im Voraus.


Angehängte Dateien
.xlsm   Microsoft Excel Worksheet (neu).xlsm (Größe: 18,39 KB / Downloads: 1)
Antworten Top
#2
Hallo,

ersetze
Range("A4").Select
durch
Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
Gruß Uwe
Antworten Top
#3
Hallo,


Zitat:Mit dem folgenden Code kann ich nur einmal kopiert und wenn ich den Kopiervorgang wiederhole werden die ersten Daten leider überschrieben:

... und verrätst Du uns, ob es eine Spalte gibt, deren Zellen immer einen Eintrag haben, also durchgängig nicht leer sind,
 beispielsweise eine Datumspalte oder sowas. Dann könnte man nämlich die letzte bereits in Gebrauch befindliche Zeile ermitteln
und mit der nächsten Kopie eben in der Zeile darunter anfangen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#4
Hallo,

... ups, ... daß da schon eine Datei existiert, das hatte ich vornehm überlesen.  :19:

Uwe  hat Dir ja nun schon eine Lösung gezeigt.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#5
Hallo,

ich danke Dir für die schnelle Antwort.
Ich habe:
Range("A4").Select
durch
Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
ersetzt.
Und das hat gut geklappt und die Daten werden nicht überschrieben aber, wenn ich kopiere, wurden immer 14 Zeilen kopiert. Das heißt, wenn ich eine Tabelle mit 100 Zeilen kopieren werde, werden nur 14 Zeilen davon kopiert.(siehe Excel-Datei)

gibt es einen bestimmten Befehl dafür??


Angehängte Dateien
.xlsm   Microsoft Excel Worksheet (neu).xlsm (Größe: 23,31 KB / Downloads: 2)
Antworten Top
#6
Hallo,

Zitat:wenn ich kopiere, wurden immer 14 Zeilen kopiert. Das heißt, wenn ich eine Tabelle mit 100 Zeilen kopieren werde, werden nur 14 Zeilen davon kopiert.(siehe Excel-Datei)

Also, Deine Datei habe ich noch nicht gesehen. Trotzdem liegt bisher alles offen dar
Da steht doch, was Du kopieren willst ... und das sind ganz gewiß keine 100 Zeilen.

Zitat:Range("A4:R17").Select
Selection.Copy
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#7
Hallo,

dann halt so:
Sub Button1()
Range(Rows(4), Cells(Rows.Count, 1).End(xlUp).EntireRow).Resize(, 18).Select
Selection.Copy
Sheets("Tabelle2").Select
Cells(Rows.Count, 1).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
With Selection
.HorizontalAlignment = xlLeft
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub
Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • alnourx
Antworten Top
#8
Hallo,

@ Kuwer: ich danke Dir sehr für deine Hilfe. Das ist genau was ich brauche Smile

@ [b]Käpt'n Blaubär: in meinem Beispiel war 14 Zeilen zu kopieren, aber manchmal muss ich eine Tabelle mit 100 Zeilen kopieren.[/b]

[b]Ihr seid alle Spitze, ich danke euch allen[/b]

[b]Gruß[/b]
[b]Alnour[/b]
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste