Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA letzte reihe ermitteln und daten übertragen

VBA letzte reihe ermitteln und daten übertragen
12.11.2019 12:07:40
Dave
Hallo Ihr lieben,
ich bi neu hier und hoffe auch richtig.
Ich bin ein VBA Neuling und stoße gerade an ein Problem wo ich nicht weiterkomme.
ich hoffe Ihr könnt helfen.
Folgender Sachverhalt:
Ich habe eine EXCEL Mappe in der gibt es ein Tabellenblatt mit den Namen "Neue Offerte"
In dieser stehen Daten welche als eine Art Formular aufgeteilt sind.
Nun möchte ich mittels Knopfdruck das er diese daten die dort eingetragen sind ( z.B. in Zeile C4 ) in die erste leere Zeile auf einem anderen Tabellenblatt namens "Offerten" überträgt.
Dabei sei zu beachten das alle Daten aus dem Blatt neue Offerten praktisch ein Datensatz ist und somit alle Daten entsprechend dann in der selben Zeile in Offerten eingetragen werden.
Anschließend sollen dann die Felder die ausgefüllt werden wieder geleert werden in Neue Offerte.
ich hoffe das war verständlich und Ihr könnt mir helfen.
Ich bedanke mich schonmal!!!
Liebe Grüße Dave

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA letzte reihe
12.11.2019 13:04:38
Klaus
Hallo Dave,
was ist denn Zeile C4? C4 ist eine Zelle, keine Zeile.
Folgendes Makro erledigt exakt das, wonach du gefragt hast:
Sub Uebertrag()
Dim lRow As Long
With Sheets("Neue Offerte")
.Range("C4").Copy
End With
With Sheets("Offerten")
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 'erste freie Zeile in Spalte A
.Range("A" & lRow).PasteSpecial
Application.CutCopyMode = False
End With
With Sheets("Neue Offerte")
.Range("C4").ClearContents
End With
End Sub
Da du keine Mustertabelle hochgeladen hast gehe ich davon aus, du möchtest die Lösung selber anpassen.
LG,
Klaus M.
Anzeige
AW: VBA letzte reihe
12.11.2019 13:37:08
Dave
Hallo Klaus,
zunächst einmal herzlichen Dank für deine schnelle und vorallem verständliche hilfe!
Ich habe deinen Code entsprechend angepasst und getestet und es funktioniert super.
Leider hatte ich gehofft das ich es entsprechend nur erweitern muss damit er alle Daten aus dem "Formular" auf dem Blatt "Neue Offerte" kopiert.
Das klappt aber nicht.
hier mal Bilder damit du das ganze auch Bildlich hast.
Hoffe es hilft etwas weiter.
Und danke nochmal!!!
Userbild
Userbild
Anzeige
AW: VBA letzte reihe
12.11.2019 13:40:57
Klaus
Hallo Dave,
möchtest du jetzt von mir einen Screenshot der VBA Lösung? Soll ich das Bild abmalen?
Lad die Datei hoch, dann schreibe ich dir das Script!
LG,
Klaus
AW: VBA letzte reihe
12.11.2019 14:25:35
Klaus
Hi Dave,
im Entwufsmodus doppelclick auf deinen Button und den Code hinter den Button schreiben.
Ich habe den Code extra ausführlich geschrieben und kommentiert. Es ginge sehr viel kürzer und eleganter, aber ich wollte die einzelnen Schritte für dich einfach nachvollziehbar machen.
LG,
Klaus M.
Private Sub cmd_btn_offerte_anlegen_Click()
Dim lRow As Long
With Tabelle2 'Offerten
lRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 'letzte Zeile
End With
With Tabelle1 'Neue Offerte
'Offertennummer
.Range("C4").Copy
Tabelle2.Range("A" & lRow).PasteSpecial
'Firma, Straße, PLZ, Ort, Ansprechpartner, Tel, Mail
'kopieren, transponiert einfügen
.Range("C7:C13").Copy
Tabelle2.Range("B" & lRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks: _
=False, Transpose:=True
'Auftragsart
.Range("C15").Copy
Tabelle2.Range("I" & lRow).PasteSpecial
'Straße Hausnummer PLZ Ort Bemerkungen
'kopieren, transponiert einfügen
.Range("C18:C22").Copy
Tabelle2.Range("J" & lRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks: _
=False, Transpose:=True
'Preis
.Range("G15").Copy
Tabelle2.Range("O" & lRow).PasteSpecial
'Datum
.Range("G13").Copy
Tabelle2.Range("P" & lRow).PasteSpecial
'ID Name Mail Kürzel
.Range("G7:G10").Copy
Tabelle2.Range("Q" & lRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks: _
=False, Transpose:=True
'aufräumen
.Range("C4").ClearContents
.Range("C7:C13").ClearContents
.Range("C15").ClearContents
.Range("C18:C22").ClearContents
.Range("G15").ClearContents
.Range("G13").ClearContents
.Range("G7:G10").ClearContents
End With
End Sub

Anzeige
AW: VBA letzte reihe
14.11.2019 08:45:24
Dave
Hallo Klaus,
danke erstmal für all deine Hilfe!
Habe heute deinen Code probiert.
Leider funktioniert dieser nicht.
Er gibt mir immer einen Fehler aus.
Er meldet: erwarteter Parameter.
Angezeigt wird dies bei SkipBlanks: _
Was soll ich tun ? :(
AW: VBA letzte reihe
14.11.2019 09:29:25
Klaus
Hi Dave,
Tabelle2.Range("J" & lRow).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks: _
=False, Transpose:=True
das ist EINE Zeile. den _ musst du löschen und das "=False,"... und so weiter in die gleiche Zeile holen.
Oder du kürtzt die Zeile, ich habe einfach den gesamten Makrorekordercode reingeworfen.
Tabelle2.Range("B" & lRow).PasteSpecial Transpose:=True
sollte reichen (ungetestet)
Oder du lädst deine Datei hoch und ich kopiere den COde für dich hinein.
LG,
Klaus
Anzeige
AW: VBA letzte reihe
14.11.2019 10:56:19
Dave
Hey,
ich bekomme es nicht hin :(
Den Code verstehe ich eigentlich denke ich aber irgendwie geht's trotzdem nicht.
Anbei die Datei.
https://www.herber.de/bbs/user/133207.xlsm
AW: VBA letzte reihe
14.11.2019 11:45:05
Klaus
Konzentration, Dave!
Der Command Button Code heisst:
Private Sub cmd_btn_offerte_anlegen_Click()
du hast aber deinen Button
Private Sub cmd_bnt_offerte_anlegen_Click()
genannt.
Weitermachen!
LG,
Klaus M.
Anzeige
AW: VBA letzte reihe
14.11.2019 11:58:03
Dave
Hey Klaus,
ich danke dir !
Sowas nennt man dann wohl echt unkonzentriertes arbeiten oder Blindheit... peinlich!
DANKE nochmal.
Beste Grüße
Dave
Danke für die Rückmeldung! owT.
14.11.2019 12:33:58
Klaus
.

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige