Benötige Hilfe bei Makrozusammenfassung
Mike
bin absoluter VBA Neuling und bekomme einfach ein Makro nicht hin.
Das war mein Ziel:
1. Eine fortlaufende Auftragsnummer generieren - erledigt
2. Werte in eine separate Journaldatei übernehme - erledigt, wenn diese vorher geöffnet wurde
3. Datei drucken und speichern - erledigt
4. Alles in ein Makro zusammenfügen - offen
Für die Punkte 1 - 3 habe ich mir bereits Lösungen zusammengestellt, die einzeln reibungslos funktionieren. Auch die Kombinationen vom 1+2 bzw. 1+3 laufen reibungslos.
Nur alles drei zusammen hakt und ich weiß nicht genau woran es liegt.
Hier mal das was ich bisher zusammengebracht habe:
Sub komplett()
'setzt die Rechnungsnummer hoch
With Worksheets("Rechnung").Range("D17")
.Value = .Value + 1
End With
'übeträgt Rechnungsdaten ins Journal
Dim lgRow As Long
Dim wks As Worksheet
Dim wksQuell As Worksheet
'eventuell den Namen des Quellblattes anpassen!!
Set wksQuell = Sheets("Rechnung")
'den Namen der Zieldatei und des Blattes jährlich anpassen
Set wks = Workbooks("Journal.xls").Sheets("Tabelle1")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
.Cells(lgRow, 1) = wksQuell.Cells(9, 1)
.Cells(lgRow, 2) = wksQuell.Cells(10, 1)
.Cells(lgRow, 3) = wksQuell.Cells(11, 1)
.Cells(lgRow, 4) = wksQuell.Cells(12, 1)
.Cells(lgRow, 5) = wksQuell.Cells(29, 7)
.Cells(lgRow, 6) = wksQuell.Cells(31, 7)
.Cells(lgRow, 7) = wksQuell.Cells(32, 7)
End With
'druckt Rechnung aus und speichert als Datei ab
Dim Kopien As Variant
If MsgBox("Rechnung ausdrucken?", vbYesNo, "Drucken") = vbYes Then
Do
Kopien = InputBox("Anzahl Kopien", "Drucken", 1)
If StrPtr(Kopien) = 0 Then Exit Sub
If IsNumeric(Kopien) Then Exit Do
MsgBox "Bitte eine Zahl eingeben!", vbExclamation, "Hinweis"
Loop
ActiveSheet.PrintOut From:=1, To:=1, Copies:=CLng(Kopien)
End If
Dim pfad, name1, name2 As String
pfad = "\\Kati\user\Ausgangsrechnungen\2012"
name1 = Cells(17, 1)
name2 = Cells(17, 3)
name3 = Cells(17, 4)
Dim i As Long
With Application.FileSearch
.LookIn = pfad
If .Execute > 0 Then i = .FoundFiles.Count
i = i + 1
ActiveWorkbook.SaveAs Filename:=pfad & "\" & name1 & " " & name2 & " " & name3 & ".xls"
End With
End Sub
Der Fehler lautet: Die Methode ´SaveAs´ für das Objekt ´_Workbook´ ist fehlgeschlagen.
Ich vermute, dass durch das Schreiben der Werte in die Journaldatei diese zur aktiven Arbeitsmappe wird und sich deshalb die eigentlich aktive Mappe nicht speichern lässt, oder?
Kann mir jemand bei diesem Problem helfen? Vielleicht ist es nur eine Kleinigkeit.
Im Optimalfall gibt mir auch noch jemand ein Tip, ob man 2) Journaldatei schreiben auch so umsetzen kann, dass diese Datei automatsich geöffnet wird, falls sie noch geschlossen ist.
Vielen Dank im Voraus.
Gruß
Mike