PDF erstellen, Eingaben löschen
#1
Hallo Leute!

Folgendes:
Ich habe eine Excel-Datei erstellt und bereits so geschützt, dass ein Anwender die Datei öffnen kann, jedoch nur in den vorgegebenen Eingabezellen Werte einträgt.
Nach der Tätigkeit, soll er die Tabelle als *.pdf speichern, die Excel file soll jedoch unberührt bleiben.

Gibt es eine Möglichkeit, einen Button am Ende der Tabelle einzufügen, welcher die Tabelle als *.pdf speichert, gemachte Eingaben löscht und die Excel-Datei schließt?
Am besten mit Dialogfeld, dass blabla, sicher dass man als pdf speichert bla bla eingegebene Daten werden gelöscht.

Vielen Dank!

Blöde Frage nebenbei:
Wie schaffe ich es denn, dass alles reibungslos funktioniert, wenn ich eine Excel Datei mit Makro versendet?
Ich schaffe es gerade nicht, eine Excel Datei mit VBA Button an einem anderen PC zu öffnen und die Aktion mit Button zu starten...
Top
#2
Hi,


Zitat:Ich schaffe es gerade nicht, eine Excel Datei mit VBA Button an einem anderen PC zu öffnen und die Aktion mit Button zu starten...

könnte vllt. daran liegen, dass die Ausführung von Makros eingeschränkt ist.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Hi,

habe ich aber bei beiden PC´s zugelassen.

Ich versteh das einfach nicht, weil wenn ich hier aus dem Forum Excel Dateien mit Makros herunterlade, funktionieren diese nach Bestätigung.

Und klappt das nicht einfach so, wenn ich quasi die "Hauptdatei" in eine neue Datei als Kopie speichere? Muss ich ehrlich jedes Mal das Makro neu zuweisen?


Sorry für meine blöden Fragen, mit VBA kenne ich mich nicht so gut aus
Top
#4
Okay, habe meinen Fehler gefunden. Klappt jetzt. (Wenn ich den Blattschutz so einstelle, dass der Anwender keine Spalten einfügen darf, geht das natürlich nicht.)

Nächste Frage - bevor ich eine Lösung bezüglich meiner Frage mit dem pdf erstellen erhoffe - Wenn ich die Mappe in eine neue Mappe verschiebe und als eigene Datei speichere, anschließen mit dem Makro Spalten einfüge, öffnet sich die "Vorlagendatei" aus der ich die Mappe kopiert/verschoben habe im Hintergrund.

Das führt zu Problemen auf einem anderen PC, da auf diesen ja die "Vorlagendatei" nicht vorhanden ist.
[Fehler: Diese Arbeitsmappe enthält mindestens eine Verknüpfung, die nicht aktualisiert werden kann. ...]

Ich habe hoffentlich nur irgendwo einen kleinen Fehler, finde den aber so nicht...
Top
#5
Zur Frage nach pdf jnd löschen: Das sind doch Dinge, die sich hervorragend mit dem Makrorekorder aufzeichnen lassen. Mach das mal und zeig dann deinen Code.
Schöne Grüße
Berni
Top
#6
Das hier wäre der Code:

Sub Eingabenlöschenpdf()
'
' Eingabenlöschenpdf Makro
' Eingaben löschen, pdf erstellen
'

'
    ActiveWindow.SmallScroll Down:=9
    Range("G14:S40").Select
    Range("Q40").Activate
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-12
    Range("N10:O10,K10:L10,H10:I10,E10:F10,A10:C10").Select
    Range("A10").Activate
    Selection.ClearContents
    ChDir "C:\Users\name\Desktop"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\name\Desktop\TESTVORLAGE.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub



Allerdings schließt sich damit ja nicht die Excel Datei.
Und ich möchte sicherstellen, dass auch Eingaben in zusätzlich eingegebenen Zellen gelöscht werden
Top
#7
Irgendwie hast du das System nicht verstanden, oder?
Du hast bei deiner Aufzeichnung Eingaben in diversen Zellen gelöscht und danach ein pdf erstellt. Wie passt das zusammen?

Der Teil erstellt das pdf
Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\name\Desktop\TESTVORLAGE.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Der Befehl
Code:
Range("A1").ClearContents
'bzw.
Range("A1:A10").ClearContents
löscht den Inhalt der Zelle A1 bzw. A1:A10. System soweit klar?

Der Befehl
Code:
ThisWorkbook.Close SaveChanges:=False     'bzw. =True
schließt die Mappe. SaveChanges:=False schließt die Mappe ohne Speichern, =True speichert die Mappe vor dem Schließen

Ich als Anwender würde dir allerdings die Krätze an den Hals wünschen, wenn du mir einfach die Mappe ungefragt vor der Nase schließt. Das möchte ich schon immer noch selbst entscheiden.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • DerBeny
Top
#8
Okay, neuer Code:

Sub Makro5()
'
' Makro5 Makro
'

'
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\name\Desktop\TESTVORLAGE.pdf", Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
    ActiveWindow.SmallScroll Down:=12
    Range("G14:S40").Select
    Range("Q40").Activate
    ActiveWindow.SmallScroll Down:=-9
    Range("G14:S40,N10:O10,K10:L10,H10:I10,E10:F10,A10:C10").Select
    Range("A10").Activate
    Selection.ClearContents
   
    ThisWorkbook.Close SaveChanges:=False
End Sub



Das funktioniert soweit wie ich das will.


Ich möchte, 
- Sicherstellen, dass auch Daten in Spalten, welche während der Bearbeitung beliebig viele hinzugefügt werden können, gelöscht werden
- dass der Name automatisch erstellt wird, mit Bezug auf eine Zelle +XYZ
- dass ich trotzdem am besten noch den Speicherpfad auswählen muss
- VOR dem speichern, man nochmal bestätigen muss, dass man sich sicher ist zu speicher und dass sämtliche Daten gelöscht werden. Die Excel Datei soll dann wirklich unverändert geschlossen werden.

Wie haut das hin?
Top
#9
Das alles ist grober Unfug und mit Kanonen auf Spatzen schießen. Für genau diesen Fall gibt es Excelvorlagen. Speichere deine Datei als "Excelvorlage mit Makros" ab. Es wird dann automatisch immer eine neue Exceldatei erstellt, die Vorlage selbst bleibt unverändert.

Um die Datei als pdf zu speichern mit Ordnerauswahl:
Code:
Sub speichern()
Dim Pfad As String, Dateiname As String

Dateiname = Worksheets("Tabelle1").Range("A1").Text     'Blattname und Zelle anpassen

Pfad = Application.GetSaveAsFilename(InitialFileName:=Dateiname, _
                                        FileFilter:="PDF-Datei (*.pdf),*.pdf")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Pfad, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False

End Sub

Damit erschlägst du auch gleich, dass der User nicht irrtümlich seine Eingaben löscht oder nach pdf-Erstellung draufkommt, dass er was falsches eingetragen hat und nun nochmal alles eingeben muss. Benutzerfreundlich nennt man das.
Schöne Grüße
Berni
Top
#10
Und wie kann ich sichergehen, dass auch wirklich alle gemachten änderungen und Eingaben gelöscht werden?

Es ist nunmal Vorgabe, dass die Excel Datei unberührt bleiben soll und nur ein pdf file übrig bleibt, die ExcelVorlage im selben prozedere mit anderen Vorgabewerten wieder genutzt wird, und wieder nur das pdf übrig bleibt.
Deshalb am besten der Dialog dass alles unwiderruflich gelöscht wird und man diesen bestärigen muss
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste