1.3k Aufrufe
in Tabellenkalkulation von
Hi Community,

ich würde gerne Inhalte (zB Name, Anschrift, Datum, Betrag) von einem Registerblatt in ein anderes Blatt auf Knopf-Druck kopieren. Es soll immer die nächste freie Zeile bespielt werden.

Eine ähnliche Anfrage gab es in diesem Forum schon, jedoch konnte ich das Makro nicht nachbauen. Siehe hier den Link:

https://supportnet.de/stat/2004/7/id186971.asp

Am meisten wäre mir geholfen, wenn jemand dieses Makro bereits im Excel hat. Ich danke euch jetzt schon für eure Rückmeldung. Ich hoffe, die Community kann mir hier helfen.

lg
Matthias

5 Antworten

0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Mathias,

leider schreibst du nicht, wie der Kopiervorgang vor sich gehen soll. Soll die Adresse aus der aktiven Zeile in die andere Tabelle kopiert werden? Soll die ganze Zeile kopiert werden oder nur bestimmte Inhalte? Und falls nur bestimmte Inhalte kopiert werden sollen, in welche Zielzellen sollen die Daten kopiert werden? Außerdem müsste man noch wissen, wie die beiden Tabellenblätter heißen.

Am besten wäre es, wenn du eine kleine Beispieltabelle mit ein paar Dummy-Daten auf einen Hoster deiner Wahl hochladen würdest (z.b. hier).

Gruß

M.O.
0 Punkte
von
Hallo M.O.,

ich habe soeben ein Muster hier hochgeladen. Habe es mit Kommentaren versehen. Ich hoffe, dass du mir helfen kannst!
Herzlichen Dank im Voraus für deine Mühen.
lg
Matthias


http://www47.zippyshare.com/v/8PLlsDkO/file.html
0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Matthias,

versuch es mal mit folgendem Makro:

Sub eingaben_kopieren()

Dim strZiel As String
Dim strQuelle As String
Dim lngZeile As Long

'Namen für Arbeitsblätter festlegen
strZiel = "Database"
strQuelle = "Input"

'letzte Zeile im Zeilarbeitsblatt ermitteln
lngZeile = ThisWorkbook.Worksheets(strZiel).Cells(Rows.Count, 1).End(xlUp).Row + 1

'Daten kopieren
With ThisWorkbook
.Worksheets(strZiel).Cells(lngZeile, 1) = .Worksheets(strQuelle).Range("A5") 'Vorname
.Worksheets(strZiel).Cells(lngZeile, 2) = .Worksheets(strQuelle).Range("B5") 'Nachname
.Worksheets(strZiel).Cells(lngZeile, 3) = .Worksheets(strQuelle).Range("B6") 'Stadt
.Worksheets(strZiel).Cells(lngZeile, 4) = .Worksheets(strQuelle).Range("B12") 'Datum
.Worksheets(strZiel).Cells(lngZeile, 5) = .Worksheets(strQuelle).Range("B10") 'Rechnungsnummer
.Worksheets(strZiel).Cells(lngZeile, 6) = .Worksheets(strQuelle).Range("B14") 'Rechnungsbetrag
.Worksheets(strZiel).Cells(lngZeile, 7) = .Worksheets(strQuelle).Range("B16") 'Text
'Zellen formatieren
.Worksheets(strZiel).Cells(lngZeile, 4).NumberFormat = "mm/dd/yyyy" 'Datum
.Worksheets(strZiel).Cells(lngZeile, 6).NumberFormat = "#,##0.00" 'Betrag
'Eingabemaske löschen
.Worksheets(strQuelle).Range("A5,B5,B6,B10,B12,B14,B16").ClearContents
End With

End Sub


Hier der Link zur bearbeiteten Beispieldatei: KLICK MICH

Gruß

M.O.
0 Punkte
von
Hi M.O.

das funktioniert echt Super! Ich danke dir ganz Herzlich.


Könnte man da jetzt noch einen Button für "in pdf speichern" extra machen, damit das pdf gleich wie die Rechnungsnummer (zB "AR_00141") plus dem Kundennamen (zB "Mercedes") heißt?

Endergebnis pdf Vorschlag zur Speicherung:

"AR_00141_Mercedes.pdf" ?

Ich danke dir wirklich im Vorfeld schon und bin total überrascht, dass heutzutage noch soviel Nächstenhilfe gelebt wird. Vor allem in einem anonymen Forum. Wenn ich mich irgendwie erkenntlich zeigen kann, dass lass es mich wissen.
lg
Matthias
0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Matthias,

ich gehe mal davon aus, dass das Tabellenblatt "Input" vor Übertragung der Daten als PDF gespeichert werden soll.
Kopiere das folgende in das Standard-Modul und weise dem Makro dann einem Button im Arbeitsblatt "Input" zu:

Sub PDF_speichern()

Dim strName As String
Dim strPfad As String
Dim strDatei As String

'falls die PDF-Datei im Verzeichnis der Arbeitsmappe abgespeichert werden soll dann so
strPfad = ThisWorkbook.Path & "\"
'falls die PDF-Datei in einem anderen Pfad gespeichert werden soll, dann so (anpassen!!!)
'strPfad = "C:\test\"

'Name zum Speichern erstellen
strName = ActiveSheet.Range("B10") & "_" & ActiveSheet.Range("B5")

strDatei = strPfad & strName

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strDatei _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

End Sub

Hier wird die PDF-Datei im selben Verzeichnis abgelegt, in dem die Excel-Arbeitsmappe liegt.
Sollen die Dateien in einem anderen Verzeichnis angelegt werden, so lösche die Zeile
strPfad = ThisWorkbook.Path & "\"

und entferne das Hochkomma vor
'strPfad = "C:\test\"

und gib dort den entsprechenden Pfad ein.

Gruß

M.O.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...