Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ordner per speicherbutton erstellen

Ordner per speicherbutton erstellen
20.04.2007 10:19:00
ganz
Hallo Excelgemeinde,
ich habe folgendes Makro:

Sub speichern4()
Application.DisplayAlerts = False
ActiveSheet.Copy
Application.DisplayAlerts = True
With ActiveWorkbook
With ActiveSheet
.UsedRange.Formula = .UsedRange.Value
.Range(.Columns(9), .Columns(Columns.Count)).Delete
.Range(.Rows(54), .Rows(Rows.Count)).Delete
.PageSetup.FitToPagesWide = 1   ' nur weegen der Kontonummern nötig
End With
.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A26") & Range("A13") & ".xls"
.Close
End With
End Sub


Ich hätte gerne das bei klick auf den Speicherbutton im Ordner C:\Mandantenbriefe\ ein eigener Ordner erstellt wird, der den Namen aus "A26" trägt.
In diesem dann erstellten Ordner, soll dann die exceldatei wie oben beschrieben erstellt werden.
Beispiel:
In A26 steht Fischer und in A13 steht Frankfurt, dann wird ein Ordner Fischer erstellt. Im Ordner Fischer wird eine xls Datei Namens FischerFrankfurt erstellt.
Besteht im Ordner Mandantenbriefe schon der Ordner Fischer, dann soll kein neuer Ordner erstellt werden, sondern nur die xls Datei.
Ist das machbar?
Ich hoffe mir kann jemand helfen und bedanke mich im voraus.
Gruß
Ralf

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ordner per speicherbutton erstellen
20.04.2007 11:01:39
IngGi
Hallo Ralf,
drei Codezeilen einfügen:

If Dir("C:\Mandantenbriefe\" & Range("A26")) = "" Then
MkDir ("C:\Mandantenbriefe\" & Range("A26"))
End If
.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A26") & Range("A13") & ".xls"

Gruß Ingolf

AW: Ordner per speicherbutton erstellen
20.04.2007 11:37:00
ganz
Hallo Ingolf,
ich habe die 3 Codezeilen eingefügt.
Leider kommt eine Fehlermeldung. Fehler beim Zugriff Pfad/Datei.
Ich habe die Codezeilen folgendermaßen eingefügt.

Sub speichern4()
Application.DisplayAlerts = False
ActiveSheet.Copy
Application.DisplayAlerts = True
With ActiveWorkbook
With ActiveSheet
.UsedRange.Formula = .UsedRange.Value
.Range(.Columns(9), .Columns(Columns.Count)).Delete
.Range(.Rows(54), .Rows(Rows.Count)).Delete
.PageSetup.FitToPagesWide = 1   ' nur weegen der Kontonummern nötig
End With
If Dir("C:\Mandantenbriefe\" & Range("A26")) = "" Then
MkDir ("C:\Mandantenbriefe\" & Range("A26"))
End If
.SaveAs Filename:="C:\Mandantenbriefe\" & Range("A26") & Range("A13") & ".xls"
.Close
End With
End Sub


Was ich nicht verstehe, ist das der SaveAs Filename dann doch nicht mehr C:\Mandantenbriefe, sondern C:\Mandantenbriefe\Fischer\ sein müßte, oder nicht?
Der zweite Ordner ändert sich aber je nach Name des Mandanten wieder.
Gruß
ralf

Anzeige
AW: Ordner per speicherbutton erstellen
20.04.2007 11:58:45
gemoppelt
Hallo Ralf,
ich vermute mal, dass das Makro im Modul eines Tabellenblattes steht. Dann beziehen sich die Verweise "Range("A13")" und "Range("A26")" nicht auf das aktive Tabellenblatt, sondern auf das Tabellenblatt, in dessen Modul das Makro steht. Dort ist dann wahrscheinlich die Zelle A26 leer, so dass er immer wieder versucht, den Ordner "C:\Mandantenbriefe\" neu zu erstellen, was zu dem Laufzeitfehler führt. Referenziere statt dessen über "ActiveSheet.Range("A13")", bzw. "ActiveSheet.Range("A26")". Dann sollte es gehen. Außerdem ist mir aufgefallen, dass eventuell zwischen dem erstellten Ordner aus A26 und dem Dateinamen aus A13 der Backslash fehlt. Kann das sein?
Gruß Ingolf

Anzeige
AW: Ordner per speicherbutton erstellen
20.04.2007 12:17:42
ganz
Hallo Ingolf,
danke für deine Hilfe, aber ich komme nicht klar.
Wo muß ich das ActiveSheet.Range("A13")", bzw. "ActiveSheet.Range("A26")" einfügen?
Gruß
Ralf

AW: Ordner per speicherbutton erstellen
20.04.2007 15:14:00
gemoppelt
Hallo Ralf,
du musst einfach Range("A13") durch ActiveSheet.Range("A13") ersetzen und das Gleiche mit Range("A26"). Also

Sub speichern4()
Application.DisplayAlerts = False
ActiveSheet.Copy
Application.DisplayAlerts = True
With ActiveWorkbook
With ActiveSheet
.UsedRange.Formula = .UsedRange.Value
.Range(.Columns(9), .Columns(Columns.Count)).Delete
.Range(.Rows(54), .Rows(Rows.Count)).Delete
.PageSetup.FitToPagesWide = 1   ' nur weegen der Kontonummern nötig
End With
If Dir("C:\Mandantenbriefe\" & ActiveSheet.Range("A26")) = "" Then
MkDir ("C:\Mandantenbriefe\" & ActiveSheet.Range("A26"))
End If
.SaveAs Filename:="C:\Mandantenbriefe\" & ActiveSheet.Range("A26") _
& "\" & ActiveSheet.Range("A13") & ".xls"
.Close
End With
End Sub

Gruß Ingolf

Anzeige
AW: Ordner per speicherbutton erstellen
21.04.2007 10:07:00
ganz
Hallo Ingolf,
danke nochmal für deine Mühe.
Das klappt nun teilweise.
Wenn ich die Datei nun speichere, legt er mir einen Ordner an und in diesem Ordner die xls datei.
Soweit ist ist alles so wie ich es wollte.
Nun habe ich das Problem das beim zweitenmal speichern, das Makro wieder einen Ordner anlegen will und da dieser nun schon vorhanden ist , kommt die Fehlermeldung.
Beipiel: Die Eingabe in A26 bleibt gleich, die Eingabe in A13 wird geändert.
Nun soll in dem schon vorhandenen Ordner eine neue xls datei angelegt werden.
Es soll nur ein neuer Ordner angelegt werden wenn sich die Eingabe in A26 ändert !!!
Geht das etwa so?
If Dir("C:\Mandantenbriefe\" & ActiveSheet.Range("A26")) = "" Then
MkDir ("C:\Mandantenbriefe\" & ActiveSheet.Range("A26"))
End If
.SaveAs Filename:="C:\Mandantenbriefe\" & ActiveSheet.Range("A26") _
& "\" & ActiveSheet.Range("A13") & ".xls"
If Dir("C:\Mandantenbriefe\" & ActiveSheet.Range("A26")) = "True" Then
.SaveAs Filename:="C:\Mandantenbriefe\" & ActiveSheet.Range("A26") _
& "\" & ActiveSheet.Range("A13") & ".xls"
End If
Ich hoffe du kannst mir da helfen.
Gruß
Ralf

Anzeige
AW: Ordner per speicherbutton erstellen
21.04.2007 10:57:00
Oberschlumpf
Hi Ralf
Ich frage noch mal:
Warum antwortest du nicht mehr auf diesen Thread?
https://www.herber.de/forum/messages/863604.html
Stell dir mal vor, du müsstest für all deine Fragen in diesem Forum etwas bezahlen - du musst aber nichts bezahlen - sparst durch uns also eine Menge Geld!
Da finde ich, dass ne Antwort von dir auf ALLE Lösungsvorschläge das Mindeste wäre.
mfg

AW: Ordner per speicherbutton erstellen
22.04.2007 09:01:00
ganz
Hallo Thorsten,
nochmal danke für deine Hilfe.
das mit dem Verzeichnis wechseln ist super, allerdings kann ich nun die Verzeichnisse zwar wechseln, aber die xls dateien in den Verzeichnissen werden nicht angezeigt.
was muß ich denn nun machen?
Gruß
Ralf

Anzeige
AW: Ordner per speicherbutton erstellen
22.04.2007 09:30:00
Oberschlumpf
Hi Ralf
Antwort steht in dem Thread, in dem deine Frage zur Combobox behandelt wird.
Ciao
Thorsten

AW: Ordner per speicherbutton erstellen
22.04.2007 09:35:00
ganz
Hallo Thorsten,
danke für deine Antwort.
Komischerweise kommt nun wenn ich auf 3x drucken gehe ein Laufzeitfehler 1004 .
Obwohl die dateien da sind wo sie waren und nicht verschoben wurden kommt dieser Fehler.
gruß
ralf

AW: Ordner per speicherbutton erstellen
22.04.2007 09:55:00
Oberschlumpf
Hi Ralf
Die Antwort steht noch immer in dem Thread, in dem deine Frage zur Combobox behandelt wird.
Ciao
Thorsten

AW: Ordner per speicherbutton erstellen
22.04.2007 10:52:00
Oberschlumpf
Hi Ralf
Tausche deinen Code aus gegen diesen:

Sub speichern4()
If ActiveSheet.Range("A26") = "" Then
MsgBox "Zelle A26 darf nicht leer sein"
Exit Sub
End If
If ActiveSheet.Range("A13") = "" Then
MsgBox "Zelle A13 darf nicht leer sein"
Exit Sub
End If
Application.DisplayAlerts = False
ActiveSheet.Copy
Application.DisplayAlerts = True
With ActiveWorkbook
With ActiveSheet
.UsedRange.Formula = .UsedRange.Value
.Range(.Columns(9), .Columns(Columns.Count)).Delete
.Range(.Rows(54), .Rows(Rows.Count)).Delete
.PageSetup.FitToPagesWide = 1   ' nur weegen der Kontonummern nötig
End With
If Dir("C:\Mandantenbriefe\" & ActiveSheet.Range("A26"), vbDirectory) = "" Then
MkDir ("C:\Mandantenbriefe\" & ActiveSheet.Range("A26"))
End If
.SaveAs Filename:="C:\Mandantenbriefe\" & ActiveSheet.Range("A26") _
& "\" & ActiveSheet.Range("A26") & ActiveSheet.Range("A13") & ".xls"
.Close
End With
End Sub


Steht bei mir in der Zelle A26=Fischer und A13=Frankfurt und führe ich dann den Code aus, wird im Verzeichnis "C:\Mandanten", welches aber schon UNBEDINGT vorhanden sein muss (vor Ausführung des Codes), dann erstellt mir der Code ein Unterverzeichnis "Fischer" und speichert die Kopie des Tabellenblattes in diesem Unterverzeichnis als Datei "FischerFrankfurt.xls".
Und wenn ich nur den Wert in A13 ändere - z Bsp in "Oslo", dann wird eine zweite Datei mit dem Namen "FischerOslo.xls" im Unterverzeichnis "C:\Mandanten\Fischer" gespeichert, ohne dass der Code versucht, erneut ein Unterverzeichnis "Fischer" anzulegen, da dieses ja schon existiert.
Zusätzlich lasse ich am Anfang des Codes mit entsprechenden Meldungen den Code abbrechen, wenn in A26 oder A13 nix drin steht.
Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Ordner per speicherbutton erstellen
22.04.2007 15:06:00
ganz
Hallo Thorsten,
vielen dank für deine Hilfe, das ist einfach spitze.
Ich wäre froh ich hätte soviel ahnung wie du. super dankeeeeeeeeeee.
Zum Schluß möchte ich dich noch fragen ob es geht das ich alle xls dateien in dem erstellten ordner mit einem klick 3x ausdrucken lassen kann?
So wie es nun ist, muß ich ja jede einzelne datei auswählen und dann ausdrucken.( was schon super ist)
Wenn ich mir in der combobox die erstellten ordner anzeigen lassen kann und deren Inhalt dann 3x ausdrucken lassen kann ist es noch einfacher.
Ist das überhaupt möglich?
Gruß
Ralf

Anzeige
AW: Ordner per speicherbutton erstellen
23.04.2007 08:57:00
Oberschlumpf
Hi Ralf
Lösch den Code im Klick-Ereignis des (3x)Druck-Buttons und füge diesen hinzu:
(die Zeilen Private S u b und End S u b dürfen natürlich nur 1x vorkommen)

Private Sub cmdPrint_Click()
Dim liListe As Integer
For liListe = 0 To ComboBox1.ListCount - 1
Workbooks.Open pstrPfad & "\" & ComboBox1.List(liListe)
pboShow = True
Me.Hide
Workbooks(ComboBox1.List(liListe)).PrintOut Copies:=3, Preview:=True, Collate:=True
Workbooks(ComboBox1.List(liListe)).Close True
Next
Me.Show
pboShow = False
End Sub


Nach Auswahl einer beliebigen Datei in der Combobox werden dann alle Dateien, die sich in der Auflistung der Box befinden, durch Klick auf den 3x-Druck-Button ausgedruckt.
ABER!!!!!
Ich habe den Code nicht getestet, da ich nicht Unmengen an ausgedrucktem Papier haben möchte.
Außerdem steht die Preview-Eigenschaft im Druckbefehl noch auf TRUE, was im Mom zur Folge hat, dass du den eigentlichen Ausdruck (3x pro gesamter Datei) noch immer mit Mausklick in der Druckvorschau bestätigen musst.
Wenn du die Preview-Eigenschaft auf FALSE setzt, wird der Druckbefehl sofort ausgeführt.
Ich weiß aber nicht (da wie gesagt nicht getestet), wie Excel und/oder dein PC dann reagiert, da ja die Code-Ausführung vieeeel schneller ist, als nur ein Blatt auszudrucken.
Wenn jeder folgende Druckbefehl erst mal in der Druckerwarteschlange landet und nicht von Excel direkt ausgedruckt "werden will", dann ist alles gut - du brauchst halt nur viel Papier :)
Konnte ich denn immer noch helfen?
Ciao
Thorsten

Anzeige
AW: Ordner per speicherbutton erstellen
23.04.2007 09:55:04
ganz
Guten Morgen Thorsten,
mit dem ausdrucken habe ich das so gelöst das ich die Dateien zu Testzwecken in eine Datei drucken lasse, das spart viel Papier ;-)) vielleicht konnte ich dir nun auch mal helfen :-)))
Ich habe es nun getestet, es kommt aber eine Fehlermeldung, Laufzeitfehler 1004 und folgende Zeile ist makiert.
Workbooks.Open pstrPfad & "\" & ComboBox1.List(liListe)
Ich glaube du hast mich auch falsch verstanden.
In der Combobox möchte ich die neu angelegten Ordner im Ordner Mandantenbriefe angezeigt bekommen und nach auswahl eines der Ordner alle xls dateien in diesem ausgewählten Ordner ausdrucken lassen.
Beispiel:
Im Ordner Mandantenbriefe wurden folgende Ordner angelegt:
Müller
Oslo
Fischer
In diesem ordnern sind jeweils 4 xls dateien.
Wenn ich nun Oslo in der Combobox auswähle, dann sollen nur die 4 xls dateien 3x ausgedruckt werden die sich im Ordner Oslo befinden.
Gruß
ralf

Anzeige
AW: Ordner per speicherbutton erstellen
23.04.2007 19:39:00
Oberschlumpf
Hi Ralf
OK, hatte dich falsch verstanden.
Aber nun - wenn ich ricthig verstehe - ist es ja ein ganz neuer Fall - eine ganz neue Frage, die mit dem eigentlichen Ihnalt hier nix mehr zu tun hat, oder?
Du hast nun in deinem UF
..."meinen" 3x-Druckbutton pro Datei
..."meine" Combobox mit Inhalt aller xls-Dateien aus dem durch "meinen" zurvor geklickten Verzeichnis-Auswahl-Button
...einen Code, der dir aus 2 Zellwerten sowohl Ordner als auch xls-Datei erstellt
Du möchtest nun in dein UF
...eine weiter Combobox, in der alle Unterverzeichnisse von C:\Mandanten angezeigt werden
...einen weiteren Button, der dir auch 3x alle xls-Dateien aus dem Ordner ausdruckt, der in der neuen Combobox ausgewählt wird
oder?
Wenn dem so ist, erstelle bitte einen neuen Thread oder korrigiere mich, wenn ich dich noch immer falsch verstehe :)
Ciao
Thorsten

AW: Ordner per speicherbutton erstellen
24.04.2007 08:27:00
ganz
Hallo Thorsten,
mit dem wie es dank deiner Hilfe nun ist, kann ich sehr gut leben.
Der I Punkt wäre nur noch das anstatt :
die xls dateien in der combobox angezeigt und 3x ausgedruckt werden.
die neu erstellten ordner in der combobox angezeigt werden und deren gesamter inhalt 3x ausgedruckt werden. (der inhalt sind dann die xls dateien)
In der combobox sollen also die ordner und nicht die xls dateien ausgewählt werden.
Gruß
Ralf

AW: Ordner per speicherbutton erstellen
24.04.2007 11:08:00
Oberschlumpf
Hi Ralf
Dann muss der ganze Code umgeschrieben werden, denke ich.
Im Moment werden ja die Dateien, die in der Combobox aufgelistet sind, ausgedruckt.
Wenn aber nun in der selben Combobox Ordner angezeigt werden sollen, passt ja der "zeige-in-Combox-Dateien-Code" nicht mehr. Ud auch der Code im 3x-Druckbutton muss umgeschrieben werden.
Mach also bitte einen neuen Thread auf, da dieser spätestens morgen auch wieder im Archiv "verschwindet".
Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige