Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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?

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

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige