ich bräuchte eure hilfe, ich muss ein Makro erstellen und dieses dann quasi im excel bzw. im breich VBA umschreiben.
Ich muss in Tabelle 1 in der Zeile 1 Spalte A-F
A B C D E F
1 Haller Manu 12.01.200 Stuttgart BW DE
eintragen nun mache ich ein Makro und tue es zuweisen:
Dieses Makor muss die Daten aus Zeile 1 A-F in den neuen Reiter bzw. Tabelle 2
in die erste Zeile Einfügen. Dieses klappt und habe ich geschafft…
wenn ich nun aber einen neuen Z.b. freund eingeben und wieder aufs gleiche Makro klicke überschreibt er natürlich meine Daten, er sollte aber diese 'Daten in Tabelle 2 Zeile 2 A-F notieren. Als ergebnis soll ich dann in Zeile 1 stehen und jeder weitere Datensatz soll unter mir eingefügt werden.
Ich schaffe dies nicht, er tut mir immer meinen Datensatz überschreiben.
Wie kann ich das Makro bzw. den Code so umschreiben das er dann immer automatisch die nächste Zelle mit den Daten füllt?
Das ist im Prinzip kein Problem. Auch mal bei google nach „vba Excel nächste freie Zeile“. Da gibts schon etliche Lösungungen. Wenn du immernoch Hilfe brauchst dann poste mal deinen Source
Da du leider dein Makro nicht beigefügt hast, als keine Hilfe folgendes.
Du musst vorher die letzte beschriebene Zeile in deiner neuen Tabelle ermitteln und dann deinen Werte eine Zeile darunter anfügen.
wobei die 1 die Spalte angibt, in der die letzte Zeile ermittelt werden soll. Wenn in Spalte 1 (=A) deine Werte anfangen, kannst du das so lassen
dann fügst du deinen Werte in der Form
lz = lz +1
cells(lz,1) = „Wert in Spalte 1“
cells(lz,2) = „Wert in Spalte 2“
versuch mal die maximal genutzte Anzahl an Zeile zu ermitteln (ActiveSheet.UsedRange.Rows.Count). Diesen Wert trägst du in eine Variable und addierst 1 hinzu. schon hast du als Zeilenwert die nächstmögliche leere Zeile.
Hallo,
ich würde es mit worksheet cells versuchen, die Zahlen können auch in loops und Schleifen angesprochen werden, so dass es kein Problem sein sollte,
hier ein entsprechendes Makro, das auch jeweils in die nächste freie Zeile im Zielblatt kopiert.
Gruß
Franz
Sub CopyDaten()
Dim wksQ As Worksheet, wksZ As Worksheet
Dim Zelle As Range
Set wksQ = Worksheets("Tabelle1") 'Eingabe-Tabelle
Set wksZ = Worksheets("Tabelle2") 'Zieltabelle
With wksZ
'Zelle in letzter Zeile mit Daten finden
Set Zelle = .Cells.Find(What:="\*", After:=.Cells(1, 1), LookIn:=xlFormulas, \_
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
'Daten in nächste freie Zeile kopieren
If Zelle Is Nothing Then
wksQ.Range("A1:F1").Copy Destination:=wksZ.Cells(1, 1)
Else
wksQ.Range("A1:F1").Copy Destination:=wksZ.Cells(Zelle.Row + 1, 1)
End If
End With
End Sub
Hallo
Sorry verstehe nur Bahnhof und weniger. Ist ja egal. Du kannst jeder Zelle in Excel Inhalte hinzufügen mit dem Code:
Tabelle1.Cells(1,1)=„XYZ“
oder über eine Variable:
Dim strText as String
strText = „XYZ“
Tabelle1.Cells(1,1)=strText
Analog kannst Du auch Inhalte einer Zelle einer Variablen zuweisen:
Dim strText as String
strText = Tabelle1.Cells(1,1)
oder jetzt die Anwendung:
tabelle2.cells(1,5)=Tabelle1.cells(1,1) & " " & tabelle1.cells(1,2) …
oder dies machen mit einer For Schleife:
For l=1 to 4
tabelle2.cells(1,5) = tabelle2.cells(1,5) 6 " " & Tabelle1.cells(l,1)
next l