Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

Speichern unter Makro

Speichern unter Makro
28.06.2016 08:50:39
Henning
Hallo zusammen,
ich bräuchte mal Hilfe. Und zwar brauch ich ein Makro, das eine Exceldatei unter einem bestimmten Namen aus zwei verschiedenen Feldern (D3 und B5) innerhalb der Tabelle (Arbeitsblatt"Befragung")an einem bestimmten Ort abspeichert.
Ich befrage ca. 100 Personen und möchte damit sicherstellen, das eine strukturierte Dateiablage sichergestellt ist. Bestenfalls kann der "Nutzer" auf Speichern klicken und dann wird die Datei entsprechend gespeichert und einmal ausgedruckt, optimal wäre es wenn dann noch im Ausdruck der Speicherort (Datum/Uhrzeit) steht.
Da ich leider kaum VBA-Kenntnisse habe würde ich mich über jegliche Art der Hilfe etxtrem doll freuen.
Vielen Dank und liebe Grüße
Henning

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Teillösung
28.06.2016 09:27:15
Michael
Hi Henning,
den Speicherort kannst Du in der Kopf- oder Fußzeile festlegen: dort sind diverse Symbole zu sehen, für Uhrzeit, Datum, Seitenzahlen und eben auch den Pfad.
Wenn Du uns jetzt noch sagst, wie sich der Dateiname aus D3 und B5 zusammensetzen soll und wie der "bestimmte Ort" heißt bzw. wo Du den hinterlegt haben willst (im Tabellenblatt, im Makro?), dann kann Dir wahrscheinlich geholfen werden.
Schöne Grüße,
Michael

AW: Teillösung
28.06.2016 09:40:02
Henning
Hi Michael,
danke für Deine Antwort.
Also der Speicherort für alle Anwender soll dieser sein "Q:\100_Vollzugriff\EREIGNISSYSTEM\Fragekatalog Ereignisse.xlsm".
In D3 steht eine User ID: z.B. S1231234 und in B5 steht eine Kennung z.B. MKK045454787524 (die Länge_kann variieren. Gut wäre auch wenn am Ende der Dateibezeichnung eine Datumsangabe/Zeitangabe z.B. 201606280938 enthalten wäre. Der Dateiname soll dann wie folgt aussehen S1231234_MKK045454787524_201606280938.xlsx.
Vielen lieben Dank

Anzeige
AW: Teillösung
28.06.2016 09:52:11
UweD
Hallo nochmal
mit den Angaben ändert sich mein Makro wie folgt..
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    On Error GoTo Fehler
    Cancel = True
    Dim Pfad$, Datei$
    Pfad = "Q:\100_Vollzugriff\EREIGNISSYSTEM\"
    With Sheets("Befragung")
        Datei = .Range("D3") & "_" & .Range("B5") & "_" & Format(Now, "YYYYMMDDhhmm") & ".xlsx"
        .PageSetup.LeftFooter = Pfad & Datei
        .PageSetup.RightFooter = Format(Now, "DD.MM.YYYY hh:mm")
        Application.EnableEvents = False
        ActiveWorkbook.SaveAs Filename:=Pfad & Datei, _
            FileFormat:=xlOpenXMLWorkbook
        .PrintOut
    End With
    Err.Clear
Fehler:
    Application.EnableEvents = True
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD

Anzeige
AW: Speichern unter Makro
28.06.2016 09:45:10
UweD
Hallo
ALT+F11
Strg+R
das Makro muss in "DieseArbeitsmappe"
Userbild
Option Explicit 
 
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
    On Error GoTo Fehler 
    Cancel = True 
    Dim Pfad$, Datei$ 
    Pfad = "C:\Temp\" 
    With Sheets("Befragung") 
        Datei = .Range("D3") & "-" & .Range("B5") & ".xlsm" 
        .PageSetup.LeftFooter = Pfad & Datei 
        .PageSetup.RightFooter = Format(Now, "DD.MM.YYYY hh:mm") 
        Application.EnableEvents = False 
        ActiveWorkbook.SaveAs Filename:=Pfad & Datei, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled 
        .PrintOut 
    End With 
    Err.Clear 
Fehler: 
    Application.EnableEvents = True 
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear 
End Sub 

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD

Anzeige
AW: Speichern unter Makro
28.06.2016 10:17:08
Henning
Hallo UweD,
klasse das funktioniert schonmal vielen Dank. Bzw. es funktioniert nur wenn ich im Screenshot 1
Userbild
auf "JA" klicke. Ich habe keine Möglichkeit die Arbeitsmappe mit dem Makro auch als *.xlsm abzuspeichern. Wenn ich auf "NEIN" klicke erhalte ich den Fehler in Screenshot 2.
Userbild
Wie kann ich jetzt die Datei so speichern das das Makro drin bleibt, ich muss die ja mit Makro verteilen an die "Befragten"?
LG Henning

Anzeige
AW: Speichern unter Makro
28.06.2016 10:50:09
UweD
Hallo
das Problem ist:
Wenn DU die ursprumgsdatei mit dem jetzt geänderten Makro speichern möchtest, dann läuft auch des "BeforeSave" ab.
Wenn du dieses Makro zum speichern der Datei selbst benutzt, müsste es gehen.
Sub Speicher_mich()
    On Error Resume Next
    Application.EnableEvents = False
    ActiveWorkbook.SaveAs FileFormat:=xlOpenXMLWorkbookMacroEnabled
    Application.EnableEvents = True
    
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Oder eben wie du schon geschrieben hast, das "User_Speichern" auf einen Button legen.
in ein Modul.
Sub User_Speichern()
    On Error GoTo Fehler
    Dim Pfad$, Datei$
    Pfad = "C:\Temp\"
    With Sheets("Befragung")
        Datei = .Range("D3") & "-" & .Range("B5") & ".xlsx"
        .PageSetup.LeftFooter = Pfad & Datei
        .PageSetup.RightFooter = Format(Now, "DD.MM.YYYY hh:mm")
        ActiveWorkbook.SaveAs Filename:=Pfad & Datei, _
            FileFormat:=xlOpenXMLWorkbook
        .PrintOut
    End With
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Gruß UweD

Anzeige
AW: Speichern unter Makro
28.06.2016 11:20:06
Henning
Hallo Uwe,
so das mit dem Button funktioniert. Es kommt allerdings immer noch das Fenster aus dem ersten Screenshot. Können wir das irgendwie umgehen das der Benutzer nicht immer auf "JA" klicken muss. Und ist es möglich, das der Benutzer dann in der Datei die das Makro enthält "Bleibt" und nicht in die abgespeicherte wechselt?
LG
Henning

AW: Speichern unter Makro
28.06.2016 11:24:48
Henning
Vielleicht kann man das Blatt ja dann nach dem Drucken in neue Arbeitsmappe verschieben und diese unter dem Namen abspeichern dann dürfte das Problem doch nicht kommen oder? Leider kann ich nicht programmieren...

AW: Speichern unter Makro
28.06.2016 10:36:27
Henning
Hi Uwe,
ich nochmal es würde mir auch reichen wenn der "Nutzer" einen Button anklicken kann "Speichern" den Button kann ich ja zufügen und ein Makro zuweisen...
Falls das einfacher ist...
LG und tausend Dank
Henning

Anzeige
AW: Speichern unter Makro
28.06.2016 12:04:09
Henning
Hi,
ich hab es etwas abgewandelt und nun klappt es. (Speicher es einfach als Datei mit Makro weg)
Gibt es eine Möglichkeit eine Plausi zu prüfen, sodass z.B. der Bediener nur auf meinen "Speicherbutton" klicken kann wenn entsprechende Felder gefüllt sind
LG
Henning

AW: Speichern unter Makro
28.06.2016 12:10:37
UweD
Hallo nochmal
- Das Blatt wird in einen Neue Datei kopiert (ohne das Makro)
- ..
- Vorher werden die Felder abgefragt
Sub User_Speichern()
    On Error GoTo Fehler
    Dim Pfad$, Datei$
    Pfad = "Q:\100_Vollzugriff\EREIGNISSYSTEM\"
    With Sheets("Befragung")
        
        If .Range("D3") = "" And .Range("B5") = "" Then 'Prüfung 
            MsgBox "Bitte die Felder füllen"
        Else
            .Copy
            Datei = .Range("D3") & "_" & .Range("B5") & "_" & Format(Now, "YYYYMMDDhhmm") & ".xlsx"
            .PageSetup.LeftFooter = Pfad & Datei
            .PageSetup.RightFooter = Format(Now, "DD.MM.YYYY hh:mm")
            ActiveWorkbook.SaveAs Filename:=Pfad & Datei, _
                FileFormat:=xlOpenXMLWorkbook
            .PrintOut
            ActiveWorkbook.Close False
        End If
    End With
    Err.Clear
Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD

Anzeige
AW: Speichern unter Makro
28.06.2016 12:47:52
Henning
Hi,
Klasse herzlichen Dank ;)
LG
Henning

Prima das jetzt alles klappt owT
28.06.2016 12:50:24
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige