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

Bis nach Eingabe warten

Bis nach Eingabe warten
05.10.2007 09:39:00
Rolf
Hallo Leute,
Ich habe folgendes Makro:

Sub NurXLS()
Application.ScreenUpdating = False
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\Temp\rot.xls"
Windows("weiter.xls").Activate
Sheets("Tabelle3").Select
Cells.Select
Selection.Copy
Windows("rot.xls").Activate
Cells.Select
ActiveSheet.Paste
'EXCEL-SPEICHERDIALOG ZUR BESTIMMUNG DES DATEINAMENS AUFRUFEN
auswahlangabe1 = MsgBox("Wählen sie im folgenden Dialog den Pfad und den Dateinamen für das  _
Excel-File aus", vbOKOnly, "SPEICHERORT EXCEL-FILE")
Saveas_filename = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Path & "\" &  _
strFileSaveName, fileFilter:="MyData(*.xls), *.xls")
'FALLS ANWENDER AUF ABBRECHEN GEDRÜCKT HAT
If Saveas_filename = False Then
strTxt = "Sie haben den Speichervorgang abgebrochen. Die Daten wurden nicht exportiert!"
MsgBox strTxt, vbCritical
Exit Sub
End If
'DATEINAME AUS KOMPLETPFAD EXTRAHIEREN
lngStringLaenge = Len(Saveas_filename)
For i = lngStringLaenge To 1 Step -1
'STRING RÜCKWÄRTS AUFBAUEN BIS SHLASH KOMMT
If Left(Mid(Saveas_filename, i), 1) = "\" Then
strFilename = Mid(Saveas_filename, i + 1)
Exit For
End If
Next i
'ENDANWEISUNGEN
ActiveWorkbook.SaveAs Filename:=Saveas_filename, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
ActiveWindow.Close
Kill "C:\WINDOWS\Temp\rot.xls"
Sheets("Tabelle3").Select
Cells.Select
Selection.ClearContents
Range("A1").Select
Sheets("Tabelle1").Select
Range("A1").Select
Fertig = MsgBox("Der Bericht wurde erfolgreich erstellt!", vbOKOnly, "VORGANG ABGESCHLOSSEN")
Application.ScreenUpdating = True
End Sub


Macht folgendes: Schreibt eine Tabelle in eine neue Arbeitsmappe und speichert diese dann unter einem neuen Namen, den man eingeben kann, ab.
Läuft das Makro passiert folgendes.
Makro läuft.
MsgBox: "Der Bericht wurde erfolgreich erstellt!" erscheint
die Speicherabfrage erscheint
Fertig
Aber Makro soll tun:
Makro läuft
Speicherabfrage erscheint
MsgBox: "Der Bericht wurde erfolgreich erstellt!" erscheint
Fertig
Gehört da irgendow ein halt rein, bevor man weitermacht, oder wie kann ich das erreichen?
Danke für eure Tipps!
Gruss
Rolf

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bis nach Eingabe warten
05.10.2007 10:48:05
fcs
Hallo Rolf,
bei mir werden die Dialoge in der Reihenfolge wie gewünscht angezeigt, wobei als 1. die MsgBOx mit dem Hinweis auf den folgenden Dialog angeezeigt wird.
Du kannst die Prozedur aber noch ein wenig vereinfachen, und das erstellen der temporären Datei rot.xls ist auch nicht notwendig. Durch die Verwendung von Objekt-Variablen für die Dateien ist der Code auch leichter nachzuvollziehen.
Gruß
Franz

Sub NurXLS()
Dim wbNeu As Workbook, wbAktiv As Workbook
Set wbAktiv = Workbooks("weiter.xls")
Application.ScreenUpdating = False
Set wbNeu = Workbooks.Add
wbAktiv.Sheets("Tabelle3").Cells.Copy Destination:=wbNeu.Worksheets(1).Cells
'EXCEL-SPEICHERDIALOG ZUR BESTIMMUNG DES DATEINAMENS AUFRUFEN
auswahlangabe1 = MsgBox("Wählen sie im folgenden Dialog den Pfad und den Dateinamen" & _
" für das Excel-File aus", vbOKOnly, "SPEICHERORT EXCEL-FILE")
Saveas_filename = Application.GetSaveAsFilename(InitialFileName:=ActiveWorkbook.Path _
& "\" & strFileSaveName, fileFilter:="MyData(*.xls), *.xls")
'FALLS ANWENDER AUF ABBRECHEN GEDRÜCKT HAT
If Saveas_filename = False Then
strTxt = "Sie haben den Speichervorgang abgebrochen. Die Daten wurden nicht exportiert!"
MsgBox strTxt, vbCritical
Exit Sub
End If
'ENDANWEISUNGEN
wbNeu.SaveAs Filename:=Saveas_filename, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
strFilename = wbNeu.Name 'Dateinamen des Berichts in Variable Speichern
wbNeu.Close
With wbAktiv
.Activate
.Sheets("Tabelle3").Activate
.Sheets("Tabelle3").Cells.ClearContents
.Sheets("Tabelle3").Range("A1").Select
.Sheets("Tabelle1").Activate
.Sheets("Tabelle1").Range("A1").Select
End With
Fertig = MsgBox("Der Bericht wurde erfolgreich erstellt!", vbOKOnly, _
"VORGANG ABGESCHLOSSEN")
Set wbNeu = Nothing: Set wbAktiv = Nothing
Application.ScreenUpdating = True
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige