Anzeige
Archiv - Navigation
1248to1252
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

Benötige Hilfe bei Makrozusammenfassung

Benötige Hilfe bei Makrozusammenfassung
Mike
Hallo Zusammen,
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

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Benötige Hilfe bei Makrozusammenfassung
12.02.2012 13:40:41
Martin
Hi Mike,
wenn jedes Makro für sich funktioniert, dann probiere es mal hiermit...
Sub komplett()
Application.Run ("Makro1")
Application.Run ("Makro2")
Application.Run ("Makro3")
End Sub
Anstelle "Makro1" und ect. estzt Du einfach deine richtigen Namen ein
Mit Application.Run("xxx") startest Du ein anderes Programm, kann man als Unterprogramm verwenden.
Gruß Martin MJ
AW: Benötige Hilfe bei Makrozusammenfassung
12.02.2012 18:34:50
Mike
Hallo Martin MJ,
ich weiß zwar nicht woran es gelegen hat, aber jetzt funktioniert auch meine Ursprungsversion plötzlich einwandfrei. Trotzdem vielen Dank für den schnellen Rat.
Dann bleibt mir als i-Tüpfelchen nur noch das automatische Öffnen, speichern und schließen der Journaldatei.
Ich habe das hier probiert:
Sub komplett()
LW = "\\Kati\user"
Pfad = "\\Kati\user\Ausgangsrechnungen\2012"
Datei = "Journal.xls"
ChDrive LW
ChDir Pfad
Dim lgRow As Long
Dim wks As Worksheet
Dim wksQuell As Worksheet
Set wksQuell = Sheets("Rechnung")
Workbooks.Open Datei
Set wks = Workbooks("Journal.xls").Sheets("2012")
With wks
lgRow = .Range("A65536").End(xlUp).Row + 1
.Cells(lgRow, 1) = wksQuell.Cells(17, 3)
.Cells(lgRow, 2) = wksQuell.Cells(17, 4)
End With
Workbooks("Journal.xls").Save
Workbooks("Journal.xls").Close
On Error GoTo 0

Wenn ich das auf einem lokalen Laufwerk gemacht habe, also z. B. unter
LW = "C:\"
Pfad = "C:\Kati\Testrechnungen"
Datei = "Journal.xls"

hat es funktioniert. Ich möchte es aber gerne im Netz laufen lassen
Die Fehlermeldung lautet: Ungültiger Prozeduraufruf oder ungültiges Argument.
Ich hoffe ich bekommen wieder so schnell Hilfe wie beim ersten Mal.
LG
Mike
Anzeige
AW: Benötige Hilfe bei Makrozusammenfassung
12.02.2012 19:39:51
Martin
Hi Mike,
also ich mache das so....
Sub datei_öffnen()
Const pfad = "C:\Dokumente und Einstellungen\Martin\Eigene Dateien\"
Const datei = "Test.xls"
ChDir "" & pfad
Workbooks.Open Filename:="" & pfad & datei
End Sub
Nach diesem Muster, funktioniert es auch mit speichern und schließen...
Gruß
Martin MJ
AW: Benötige Hilfe bei Makrozusammenfassung
12.02.2012 19:50:08
Mike
Hallo Martin,
ja, ich habe einfach das Laufwerk rausgenommen und schon gings.
Pfad = "\\Kati\user\Ausgangsrechnungen\2012"
Datei = "Journal.xls"
ChDir Pfad

Danke
Mike

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige