Hallo, ich habe ein kleines Problem in Excel/VBA.
Ich bin da noch ein ziemlicher Neuling und fuchse mich gerade erst in die ganze Geschichte rein.
Jetzt habe ich folgende Aufgabe bekommen, die sich für mich zur Zeit irgendwie nicht lösen lässt und hoffe, dass hier ein Experte sitzt, der mir das beantworten kann.
Folgendes ist Sache: Ich habe eine Kalkulation in meinem Ordner, die ich bearbeite. Dort sind hinter den ganzen Preisen natürlich Formeln hinterlegt (Rabatte, Aufschläge etc.). Jetzt will ich jemandem diese Datei schicken, jedoch ohne dass er meine Berechnungen sehen kann sondern die Ergebnisse als vollen Wert. Dazu soll Excel mir eine Kopie mit den Ergebnissen erstellen (damit ich diese Kopie in einen anderen Ordner speichern kann). So weit so gut, das funktioniert auch bereits.
Nun zu meinem Problem: Ich habe bereits einen Dialog, der beim Klicken auf das Makro das Druckfenster öffnet und bestimmte Einstellungen (anpassen auf eine Seite breit und hoch) direkt auswählt. Sobald ich mich entschließe, zu drucken (oder auch nicht), soll Excel diese Kopie öffnen UND das Original mit den Berechnungen speichern und schließen.
Da liegt jedoch mein Problem, weil es bei meinen Versuchen bislang nicht funktioniert hat, da sich entweder gar nichts tat oder die neue Datei geschlossen wurde…
Ich kopiere euch mal das gesamte Makro hier rein und hoffe, dass jemand das, was ich da markiert habe, erfolgreich bearbeiten kann.
Danke schon einmal im Voraus und falls es Fragen gibt, immer her damit.
Sub Tabellenblattkopieren()
Dim Spa As Long, Eing, AC As Long, Dateiname As String
On Error GoTo Ende
Dateiname = ActiveWorkbook.Name
AC = ActiveCell.Column
'Dateiname in Variable übergeben oder Pfad incl. Dateiname in Variable übergeben
ActiveWorkbook.Save
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Application.PrintCommunication = True
Application.Dialogs(xlDialogPageSetup).Show
Application.Dialogs(xlDialogPrint).Show
Application.ScreenUpdating = False
ActiveSheet.Copy
—> 'Ursprüngliche Datei schließen AC Then
Columns(Spa).Copy
Columns(Spa).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If
Next Spa
Application.CutCopyMode = False
Ende:
Application.ScreenUpdating = True
Range(„A1“).Select
If Err.Number 0 Then MsgBox „Es ist ein Fehler aufgetreten. Diese Datei muss leider per Hand bearbeitet werden!“
'Neue Datei Speichern unter Dialog öffnen mit Speicherpfad F:/Email Send und Vorschlag Dateiname der Ursprungsdatei