Registriert seit: 29.03.2020
Version(en): Office 365
31.03.2020, 17:04
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2020, 17:16 von WillWissen.
Bearbeitungsgrund: Schriftgröße
)
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...
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 29.03.2020
Version(en): Office 365
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
Registriert seit: 29.03.2020
Version(en): Office 365
31.03.2020, 20:15
(Dieser Beitrag wurde zuletzt bearbeitet: 31.03.2020, 20:15 von DerBeny.)
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...
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
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
Registriert seit: 29.03.2020
Version(en): Office 365
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
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
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
Registriert seit: 29.03.2020
Version(en): Office 365
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?
Registriert seit: 02.05.2018
Version(en): Excel 365 & 2016
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
Registriert seit: 29.03.2020
Version(en): Office 365
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
|