Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel automatisch starten und am Ende schliessen

Frage Entwicklung VB for Applications

Mitglied: Landstreicher

Landstreicher (Level 1) - Jetzt verbinden

12.08.2008, aktualisiert 16:31 Uhr, 8837 Aufrufe, 10 Kommentare

Hallo,

ich habe in einer Exceldatei einige Makros die beim starten der Datei automatisch ausgeführt werden sollen. .. soweit so gut ...

Problem 1:
nun habe ich mal folgdendes in "DieseArbeitsmappe" geschrieben

01.
Private Sub Workbook_Activate() 
02.
Application.Run "Auswertung_PO3.xls!auswertung" 
03.
End Sub
leider hat dies eine Endlosschleife zur folge.

Problem 2: da dieses Excelfile auch automatisch am Wochenende laufen soll, wo niemand vor der Kiste hockt, wünsche ich mir natürlich, das sich dieses auch wieder nach erfolgreichem Lauf automatisch beendet.

leider erscheint hier immer die normale Frage bei "Änderungen" "Sollen die Änderungen gespeichert werden?" ja;nein;abbrechen

die Änderungen sollen natürlich nicht gespeichert werden. Gibt es hier nun die Möglichkeit das er automatisch auf "nein" klickt ?

danke schon mal vorab.
Mitglied: bastla
12.08.2008 um 13:47 Uhr
Hallo Landstreicher!

Dein Problem 1 ist etwas knapp geschildert (bzw aus dem Zusammenhang gerissen) - vielleicht holst Du etwas weiter aus.

Zu P2:
Da es in dem Makro vermutlich irgendwo ein "Workbook.Close" geben dürfte, könntest Du dieses auf "Workbook.Close SaveChanges:=False
" abändern.

Andere Möglichkeit: Ein "ThisWorkbook.Saved=True" (am Ende des Makros) gaukelt Excel vor, dass alle Änderungen bereits gespeichert wären und sollte damit auch die Speicherabfrage verhindern.

Grüße
bastla
Bitte warten ..
Mitglied: miniversum
12.08.2008 um 14:10 Uhr
Zu P1:
Wenn ichs richtig verstehe dann ändere einfach das
Workbook_Activate
in
Workbook_Open
Bitte warten ..
Mitglied: Landstreicher
12.08.2008 um 14:41 Uhr
Hallo Bastla,

gäbe es da nicht das Problem, das ich absoluter Neuling bin und von tuten und bla*** keine ahnung habe

ich könnte dir das ganze mal zukommen lassen, wenn es dir hilft und mir natürlich
Ich weiss nicht mal wo ich das "Workbook.Close SaveChanges:=False" einordnen muss ???

zu P1)
schon behoben

nachtrag zu P2)
also es soll schon so sein das sich diese Excelldatei nach erfolgreichem lauf automatisch beendet.
da fehlt mir komplett die Bfehelskette. zusätzlich gibts halt noch das problem mit dem Workbook.Close
Bitte warten ..
Mitglied: Landstreicher
12.08.2008 um 14:44 Uhr
wahhhhhhhhhh - sin

genau das wars ... man war das einfach

bliebe noch P2

Dank dir.
Bitte warten ..
Mitglied: bastla
12.08.2008 um 14:52 Uhr
Hallo Landstreicher!

Ich weiss nicht mal wo ich das "Workbook.Close SaveChanges:=False" einordnen muss ???
Das wäre nur ein Ersatz für eine bereits vorhandene "Close"-Zeile (muss nicht exakt "Workbook.Close" lauten) - die müsste sich ja eigentlich finden lassen.

Ansonsten wäre es aber trotzdem erforderlich, dass Du Dir selbst (und dann uns) den Ablauf der / die Zusammenhänge zwischen den einzelnen Makros klar machst - und ohne auch nur ein Stück Code gesehen zu haben, ist's etwas schwierig, Anpassungen vorzunehmen.

Grüße
bastla
Bitte warten ..
Mitglied: Landstreicher
12.08.2008 um 14:57 Uhr
simsalabin der code

01.
Public workdir, savedir, perffile, defaultfile, myworkbook, protocol, _ 
02.
       datestamp, filebegin, defaulthost, db_server, _ 
03.
       overview, htmlsavedir As String 
04.
Public debug_level As Integer 
05.
' App Server Array 
06.
Public app_server(1 To 50, 1 To 4) As Variant 
07.
 
08.
 
09.
Sub auswertung() 
10.
On Error GoTo fehler 
11.
 
12.
' Bildschrimausgabe ausknipsen 
13.
Application.ScreenUpdating = False 
14.
 
15.
' Deklarationen und Variablen 
16.
' --------------------------------------------------- 
17.
Dim zaehler As Integer 
18.
 
19.
workdir = get_param("workdir") 
20.
savedir = get_param("savedir") 
21.
htmlsavedir = get_param("htmlsavedir") 
22.
' Checken der Verzeichnisse 
23.
On Error GoTo dir_error 
24.
ChDir savedir 
25.
ChDir htmlsavedir 
26.
ChDir workdir 
27.
On Error GoTo 0 
28.
protocol = get_param("protocol_file") 
29.
protocol = workdir & protocol 
30.
debug_level = get_param("debug_level") 
31.
filebegin = get_param("filebegin") 
32.
db_server = get_param("db_server") 
33.
overview = get_param("overview") 
34.
app_diagrams = get_param("app_diagrams") 
35.
'Merke eigenes Workbook 
36.
myworkbook = ActiveWorkbook.name 
37.
 
38.
' Verhinderung des Abbruchs (Schutzverletzung) 
39.
' Öffnen und Schließen der Benutzerdefinierten Charts 
40.
On Error Resume Next 
41.
Workbooks.Open filename:=workdir & "XL8GALRY.XLS", ReadOnly:=True 
42.
If Not Err.Number = 1004 Then 
43.
ActiveWorkbook.Close SaveChanges:=False 
44.
End If 
45.
On Error GoTo 0 
46.
 
47.
'On Error GoTo fehler 
48.
' Datum für verschiedene Plattformen 
49.
datum = Date - 1 
50.
If Len(datum) = 10 Then 
51.
   datestamp = Right(datum, 4) & Mid(datum, 4, 2) & Left(datum, 2) 
52.
ElseIf Len(datum) = 8 Then 
53.
   datestamp = "20" & Right(datum, 2) & Mid(datum, 4, 2) & Left(datum, 2) 
54.
Else 
55.
   datestamp = "" 
56.
End If 
57.
 
58.
' App Server Array 
59.
' 1. Dimension: verschiedene App Server (max. 50!) 
60.
' 2. Dimension: 1 App_server wie in SM51 (HOST_SID_SYSNR) 
61.
'               2 HOST 
62.
'               3 SID 
63.
'               4 SYSNR 
64.
Dim sheetname As String 
65.
sheetname = ActiveSheet.name 
66.
ActiveWorkbook.Sheets("Configuration").Activate 
67.
zaehler = 1 
68.
For i = 10 To 1000 
69.
   If Cells(i, 1).Value = "app_server" Then 
70.
      app_server(zaehler, 1) = Cells(i, 2).Value 
71.
      ' aufdröseln 
72.
      pos1 = InStr(1, app_server(zaehler, 1), "_", vbTextCompare) 
73.
      pos2 = InStr(pos1 + 1, app_server(zaehler, 1), "_", vbTextCompare) 
74.
      app_server(zaehler, 2) = Left(app_server(zaehler, 1), pos1 - 1) 
75.
      app_server(zaehler, 3) = Mid(app_server(zaehler, 1), pos1 + 1, 3) 
76.
      app_server(zaehler, 4) = Right(app_server(zaehler, 1), Len(app_server(zaehler, 1)) - pos2) 
77.
      'MsgBox (app_server(zaehler, 1) & vbCr & _ 
78.
              app_server(zaehler, 2) & vbCr & _ 
79.
              app_server(zaehler, 3) & vbCr & _ 
80.
              app_server(zaehler, 4) & vbCr) 
81.
      zaehler = zaehler + 1 
82.
   End If 
83.
Next i 
84.
ActiveWorkbook.Sheets(sheetname).Activate 
85.
    ' Anzeige der App-Server 
86.
    ' i = 1 
87.
    ' While Not app_server(i, 1) = "" 
88.
    '    MsgBox (app_server(i, 1)) 
89.
    '    i = i + 1 
90.
    ' Wend 
91.
' ENDE App Server Array 
92.
 
93.
' Auswertungsdatum festlegen 
94.
datestamp2 = Date - 1 
95.
datestamp = Format(datestamp2, "YYYYMMDD") 
96.
If datestamp = "" Then 'Abbruch 
97.
   Exit Sub 
98.
End If 
99.
             
100.
 
101.
 
102.
' --------------------------------------------------- 
103.
' M A I N 
104.
' --------------------------------------------------- 
105.
' hier geht's mit der Schleife los 
106.
proto ("Start Loop") 
107.
i = 1 
108.
While Not app_server(i, 1) = "" 
109.
    ' Arbeits Vars 
110.
    datasheet = app_server(i, 1) 
111.
    perffile = filebegin & "." & app_server(i, 1) & "." & datestamp 
112.
     
113.
    proto ("new_sheet") 
114.
    new_sheet (datasheet) 
115.
    proto ("open_perf_file") 
116.
    okcode = open_perf_file(workdir & perffile) 
117.
    If okcode = "OK" Then 
118.
        proto ("clear_perf_file") 
119.
        clear_perf_file (perffile) 
120.
        Workbooks(myworkbook).Activate 
121.
        proto ("move_table_to_auswertung") 
122.
        move_table_to_auswertung (perffile) 
123.
        Application.DisplayAlerts = False 
124.
        Workbooks(perffile).Close 
125.
        Application.DisplayAlerts = True 
126.
        proto ("create_header") 
127.
        create_header (datasheet) 
128.
        If app_diagrams = "y" Or app_diagrams = "j" Then 
129.
           proto ("create_diagram") 
130.
           create_diagramm (datasheet) 
131.
        End If 
132.
    End If 
133.
    i = i + 1 
134.
Wend 
135.
proto ("Zusammenfassung erstellen") 
136.
create_overview (overview) 
137.
create_overview_diagramm (overview) 
138.
proto ("export_dia_to_internet") 
139.
Call export_dia_to_internet((myworkbook), (overview)) 
140.
proto ("move_worksheet") 
141.
move_worksheets 
142.
 
143.
'Aktiviere eigenes Workbook 
144.
'Workbooks(myworkbook).Activate 
145.
proto ("ENDE") 
146.
 
147.
' Bildschrimausgabe anknipsen 
148.
Application.ScreenUpdating = True 
149.
 
150.
Exit Sub 
151.
fehler: 
152.
MsgBox ("Fehler " & Err & " aufgetreten!!!") 
153.
proto ("Fehler " & Err & " aufgetreten!!!") 
154.
Exit Sub 
155.
 
156.
dir_error: 
157.
'MsgBox ("Fehler " & Err & " aufgetreten!!!") 
158.
Mldg = Chr(13) & Err.Description & vbCr _ 
159.
        & "Bitte prüfen Sie die Konfiguration der Verzeichnisse!" 
160.
MsgBox Mldg, , "Fehler # " & Str(Err.Number) & " wurde ausgelöst" 
161.
Exit Sub 
162.
 
163.
 
164.
End Sub 
165.
 
166.
Sub ftp_to_webserver() 
167.
Application.ScreenUpdating = False 
168.
Dim exportwb, exportsh, files As String 
169.
 
170.
exportwb = ActiveWorkbook.name 
171.
exportsh = ActiveSheet.name 
172.
wbz = 0 
173.
For i = 1 To Workbooks.Count 
174.
    If Left(Workbooks(i).name, 10) = "Auswertung" Then 
175.
       myworkbook = Workbooks(i).name 
176.
       wbz = wbz + 1 
177.
    End If 
178.
Next i 
179.
If wbz <> 1 Then 
180.
   MsgBox ("FEHLER: Die Exceldatei, die die Makros enthält, ist nicht oder mehrfach geöffnet !!!" & vbCr _ 
181.
         & "(Hinweis: die Datei MUSS mit >Auswertung< beginnen) ") 
182.
   Exit Sub 
183.
End If 
184.
 
185.
 
186.
Workbooks(myworkbook).Activate 
187.
 
188.
webserver_ip = get_param("webserver_ip") 
189.
webserver_account = get_param("webserver_account") 
190.
webserver_passwd = get_param("webserver_passwd") 
191.
webserver_dir = get_param("webserver_dir") 
192.
htmlsavedir = get_param("htmlsavedir") 
193.
htmllocaldir = Left(htmlsavedir, Len(htmlsavedir) - 1) 
194.
 
195.
 
196.
 
197.
        
198.
     
199.
Call export_dia_to_internet((exportwb), (exportsh)) 
200.
Workbooks(myworkbook).Activate 
201.
 
202.
 
203.
htfile = htmlsavedir & Left(exportwb, (Len(exportwb) - 4)) & ".html" 
204.
files = Left(exportwb, (Len(exportwb) - 4)) & "*" 
205.
 
206.
extra_text = add_text_to_html(extra_text) 
207.
If extra_text <> "" Then 
208.
   Call edit_html_page(extra_text, htfile) 
209.
End If 
210.
 
211.
Call ftp(webserver_ip, files, htmllocaldir, webserver_dir, webserver_account, webserver_passwd, rc) 
212.
If rc Then 
213.
   MsgBox ("FTP Übertragung erfolgreich beendet!") 
214.
Else 
215.
   MsgBox ("Fehler beim FTP!") 
216.
End If 
217.
 
218.
Application.ScreenUpdating = True 
219.
 
220.
End Sub 
221.
 
222.
 
Bitte warten ..
Mitglied: bastla
12.08.2008 um 15:27 Uhr
Hallo Landstreicher!

Einmal abgesehen davon, dass das noch nicht die volle Wahrheit (bzw der vollständige Code) war - wird beim jetzigen Stand überhaupt schon versucht, Excel automatisch zu beenden, und scheitert dies nur noch an der Speicherabfrage (BTW: auf welche Datei bezieht sich diese Abfrage überhaupt?)?

Wenn ja, versuche es mit folgender (neuer) Zeile 149:
01.
Workbooks(myworkbook).Saved = True
und schau mal, ob Du ein "Application.Quit" im restlichen Code findest.

Grüße
bastla
Bitte warten ..
Mitglied: Landstreicher
12.08.2008 um 15:57 Uhr
Hi,

du hast natürlich recht, das ist nur die halbe Miete. (hatte ganz vergessen das es noch ein Funktionen-Modul gibt.

nein es wird noch nirgends versucht excel nach dem Lauf der Auswertung automatisch schliessen zu lasssen
Wie gesagt, ich kenne mich mit VBA null aus und hangel mich gerade mehr oder weniger da durch, weil mir diese ständige "tippse hier das, da das und dort das an" Sache auf den Senkel geht


willst du den Rest des codes auch noch haben ? kleine Warnung .. das sind einige Zeilen

PS: wenn du eine Lösung hast sag mir doch bitte gleich wo ich wie was an welcher stelle eintragen soll.

Gruß Landstreicher
Bitte warten ..
Mitglied: bastla
12.08.2008 um 16:05 Uhr
Hallo Landstreicher!

Na gut, dann eben drauf los: Ergänze das "Sub Workbook_Open()" (das ehemalige "Sub Workbook_Activate()") so:
01.
Private Sub Workbook_Open() 
02.
Application.Run "Auswertung_PO3.xls!auswertung" 
03.
ThisWorkbook.Saved = True 
04.
Application.Quit 
05.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Landstreicher
12.08.2008 um 16:31 Uhr
ähhh ... drauf los fand ich gut und hat gewirkt

dank dir bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Microsoft Office
Registerkarte in Excel automatisch färben (10)

Frage von ralfkausk zum Thema Microsoft Office ...

Vmware
ESXi automatisch starten möglich? (2)

Frage von Stefan007 zum Thema Vmware ...

Microsoft Office
gelöst Excel: Matirx mit Formel automatisch befüllen (5)

Frage von sims zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel oder google Sheets automatisch aktualisieren bei neuen Werten? (14)

Frage von Stoffn zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (9)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...