Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Nächste freie Zeile nutzen und variable Dateinamen

Nächste freie Zeile nutzen und variable Dateinamen
18.03.2018 21:07:09
Henri
Hallo nochmal zusammen,
in zwei anderen Fragen brauche ich Eure Hilfe. Daten werden von einer Quelldatei (Kalkulationsvorlage.xlsm) in eine Zieldatei (umsatz_aktuell.xlsx) kopiert.
FRAGE 1)
Und zwar soll in der Zieldatei "umsatz_aktuell.xlsx" jeweils bei neuen Einträgen:
1) die nächste freie Zeile genutzt werden
2) das Format der Zieltabelle gleich bleiben - also nichts zerschossen werden
Der Code ist wie folgt:
Sub umsatzkopieren()
' umsatzkopieren Makro
If MsgBox("Möchtest du die Umsätze in der Datenbank eintragen?", vbYesNo) = vbYes Then
Workbooks.Open "C:\Users\Marvin\Documents\umsatz_aktuell.xlsx"
Windows("kalkulationsvorlage.xlsm").Activate
Sheets("kopieren").Select
Range("A1").Copy
Windows("umsatz_aktuell.xlsx").Activate
Range("C4").Select
ActiveSheet.Paste
Windows("kalkulationsvorlage.xlsm").Activate
Sheets("kopieren").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("umsatz_aktuell.xlsx").Activate
Range("D4").Select
ActiveSheet.Paste
Windows("kalkulationsvorlage.xlsm").Activate
Sheets("kopieren").Select
Range("A3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("umsatz_aktuell.xlsx").Activate
Range("E4").Select
ActiveSheet.Paste
Windows("kalkulationsvorlage.xlsm").Activate
Sheets("Nachkalkulation").Select
Range("B2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("umsatz_aktuell.xlsx").Activate
Range("A4").Select
ActiveSheet.Paste
Windows("kalkulationsvorlage.xlsm").Activate
Sheets("Nachkalkulation").Select
Range("A2").Select
Application.CutCopyMode = False
Selection.Copy
Windows("umsatz_aktuell.xlsx").Activate
Range("B4").Select
ActiveSheet.Paste
End If
End Sub
FRAGE 2)
Die Quelldatei hat per Powershell Befehl jedes Mal einen anderen Namen, da es sich bei meinen Mitarbeitern um deren Kalkulationsdatei handelt. Die haben dann ein Kürzel - z.B. MM und den Kundennamen - Beispiel: MM_kunde1.xlsm
Wie kann ich also in dem oben genannten VBA Code eine Auslese-Abfrage eingeben, damit der Code sich bei einer umbenannten Datei nicht zerschiesst bzw. einen Fehler erzeugt?
Ich hoffe auf Eure Hilfe.
VG
Henri
Kann mir jemand hierbei helfen?
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nächste freie Zeile nutzen und variable Dateinamen
18.03.2018 21:57:23
fcs
Hallo Henri,
durch Verwendung passender Objekt-Variablen kann man das Ganze wesentlich vereinfachen.
Das Problem mit den unterschiedlichen Dateinamen der User kann man lösen, indem man der Objektvariablen für die Quelldatei das Activeworkbook vor dem Öffnen der Zieldatei zuweist.
Gruß
Franz
Sub umsatzkopieren()
' umsatzkopieren Makro
Dim wkbZiel As Workbook
Dim wksZiel As Worksheet '
Dim wkbQuelle As Workbook, wksQuelle As Worksheet
Dim Zeile As Long
If MsgBox("Möchtest du die Umsätze in der Datenbank eintragen?", vbYesNo) = vbYes Then
Set wkbQuelle = ActiveWorkbook
Set wkbZiel = Workbooks.Open("C:\Users\Marvin\Documents\umsatz_aktuell.xlsx")
Set wksZiel = wkbZiel.Worksheets(1) 'Index-Nr. ggf anpassen
With wksZiel
Zeile = .Cells(.Rows.Count, 3).End(xlUp).Row + 1
Set wksQuelle = wkbQuelle.Worksheets("kopieren")
.Cells(Zeile, 3).Value = wksQuelle.Range("A1").Value 'A1 nach Spalte C
.Cells(Zeile, 4).Value = wksQuelle.Range("A1").Value 'A2 nach Spalte D
.Cells(Zeile, 5).Value = wksQuelle.Range("A1").Value 'A3 nach Spalte E
Set wksQuelle = wkbQuelle.Worksheets("Nachkalkulation")
.Cells(Zeile, 1).Value = wksQuelle.Range("B2").Value 'B2 nach Spalte A
.Cells(Zeile, 2).Value = wksQuelle.Range("A2").Value 'A2 nach Spalte B
End With
wkbZiel.Save
End If
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige