Makro fürs copieren ohne überschreiben

Hallo. Ich hätte da ein
Problem in Execl, wo ich nicht mehr weiter weiss.
Beispiel:

Tabelle 1:
In Zelle A1 bis A5 stehen informationen(die ich immer neu eingebe), die mir Excel in Tabelle 2
übertragen soll (kein Problem)
Aber ich möchte, das Excel die Information zb. jetzt in Tabelle 2 auf
A1 bis A5 einträgt. so und wenn ich jetzt in Tabelle 1 neue
Information eingebe, und es wieder in Tabelle 2 übertragen lassen
will, soll Excel jetzt nicht die Zellen A1 bis A5 in Tabelle 2
überschreiben, sondern die nächsten Freien Tabellen nehmen (B1 bis
B5) und so weiter…
Ich hoffe, das sie mir helfen können

Moin KRISAm,

Du mußt nur vor dem Einfügen in Tabelle 2 prüfen, ob da schon Werte in der Spalte stehen. Wenn ja, dann kannst Du z.B. mit Range(„XY“).Offset(0,i).Value die nächste Spalte auswählen.
Den Test, ob das Feld leer ist, machst Du in einer Do-Until- oder auch Do-While-Schleife.
Ich probier mal eben:

Sub Kopiere()
Dim i As Integer
 i = 0 
 Do While Range("A1").Offset(0, i).Value ""
 i = i + 1
 Loop
 Range("A1").Offset(0, i).Value = Wert1
 Range("A2").Offset(0, i).Value = Wert2
 Range("A3").Offset(0, i).Value = Wert3
 Range("A4").Offset(0, i).Value = Wert4
End Sub 'Kopiere

Das habe ich nicht ausprobiert, aber es schildert die Idee. Wert1 bis 4 sind die Werte aus Tabelle 1.

Kristian

Hallo nochmal.
Zuersteinmal Danke, das du mir hilfst. Leider kenne ich mich mit VBA fast nicht aus. Ich habe das Programm jetzt in VBA übertragen, aber es passiert nichts. Muß ich zuerst eingeben, welche Zeile er copieren soll?( Oder steht das schon in deinem Makro?)
Und wie kann ich ihm sagen, das er zb. die Zelle A1 von Tabelle 1 auf tabelle2 copieren soll?

Danke im voraus.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

So funktioniert´s:
Dann probiere mal das hier aus. Kopiere die beiden Prozeduren einfach in das VBA-Modul. Dann solltest Du die Tabelle 1 öffnen, mit der rechten Maustaste auf die Symbolleisten oben klicken, die Leiste „Formular“ oderso aktivieren, dort einen Button auswählen und ihn in der Tabelle platzieren. Es öffnet sich automatisch ein Fenster, in dem Du das Makro auswählen kannst.
Lege ggf. auch einen zweiten Knopf für die andere Prozedur an.

Kristian

Option Explicit
 
Sub Kopiere()
Dim i As Integer
Const Tabelle1 As String = "Sheet1"
Const Tabelle2 As String = "Sheet2"
 Sheets(Tabelle2).Activate
 'Falls Du die Tabellen nicht auf zwei verschiedenen Blättern,
 'sondern in zwei verschiedenen Dokumenten hast, dann mußt Du
 '"Sheets" durch "Workbooks" ersetzen und oben die entsprechenden
 'Namen angeben. Diese findest Du notfalls heraus, indem Du die
 'Prozedur "ZeigeWorkbookNamen" einmal startest.
 i = 0
 Do While Range("A1").Offset(0, i).Value ""
 i = i + 1
 Loop
 With Sheets(Tabelle1)
 Range("A1").Offset(0, i).Value = .Range("A1").Value
 Range("A1").Offset(1, i).Value = .Range("A2").Value
 Range("A1").Offset(2, i).Value = .Range("A3").Value
 Range("A1").Offset(3, i).Value = .Range("A4").Value
 Range("A1").Offset(4, i).Value = .Range("A5").Value
 'Range("A1").Offset(0, 0) zeigt auf Feld A1 in Tabelle 2
 'Range("A1").Offset(1, 0) zeigt auf Feld A2 in Tabelle 2
 'Range("A1").Offset(1, 1) zeigt auf Feld B2 in Tabelle 2 usw.
 '".Range("Ax").Value" bezieht sich wegen des "With" auf Tabelle 1.
 'In diesen Zeilen wird also kopiert.
 End With '
End Sub 'Kopiere
 
 
Sub ZeigeWorkbookNamen()
Dim i As Integer
Dim k As Integer
Dim Zeile As String
 Zeile = ""
 For i = 1 To Workbooks.Count
 Zeile = Zeile & "Workbook " & i & ": " & Workbooks(i).Name & vbCr
 For k = 1 To Workbooks(i).Sheets.Count
 Zeile = Zeile & " Sheet " & k & ": " & Workbooks(i).Sheets(k).Name & vbCr
 Next k
 Zeile = Zeile & vbCr
 Next i
 MsgBox Zeile, vbInformation, "Hier sind sie alle:"
End Sub 'ZeigeWorkbookNamen
1 „Gefällt mir“

Hi. Danke nochmal.
Ich habe es so gemacht, aber ich bekomme andauernd die Fehlermeldung „Laufzeitfehler9 Index auserhalb des gültigen Bereichs“
und wenn ich testen anklicke, zeigt er auf die Zeile Sheets(Tabelle2).Activate

Dann hätte ich noch eine Frage, wie kann ich eine den wert einer Zelle copieren, ohne das ich die darin befindente Formel copiere?(Geht das auch mit Makro aufzeichnen)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich habe es so gemacht, aber ich bekomme andauernd die Fehlermeldung „Laufzeitfehler9 Index auserhalb des gültigen Bereichs“ und wenn ich testen anklicke, zeigt er auf die Zeile Sheets(Tabelle2).Activate

Klar, dann hast Du nicht die korrekten Namen angegeben, so wie ich es ja im Kommentar darunter gesagt habe.

Dann hätte ich noch eine Frage, wie kann ich eine den wert
einer Zelle copieren, ohne das ich die darin befindente Formel
copiere?(Geht das auch mit Makro aufzeichnen)

Zeichne es auf und gucke es Dir an. Ich denke, das geht.

Kristian