nochmal Excelblatt

cosmovitelli

Aktives Mitglied
Thread Starter
Dabei seit
04.10.2004
Beiträge
269
Reaktionspunkte
0
Tag zusammen, hab jetzt ein Script gebastelt in dem eine Exceldatei geöffnet wird. Dann sollte ein Makro ablaufen und die Datei sollte wieder geschlossen werden.
Das mit dem Makro hab ich gelassen. Besser ist wenn Applescript die Aufgabe übernimmt. Konkret heisst das einige Spalten löschen und einige Blätter löschen.
Code:
tell application "Finder"
	
	activate
	open document file "Liste AgHs aktuell.xls" of folder "impuls" of folder "Documents" of folder "user" of folder "Users" of startup disk
	
	
	tell application "Microsoft Excel"
		
		delete column {"10", "11", "12", "13", "22", "23", "24", "25"} of sheet 1
		
		delete column 5 of sheet 2
		
		delete sheet "Beurteilung"
		delete sheet "Stundennachweis"
		delete sheet "Trainingsmaßnahme"
		delete sheet "Auswertungen"
		
	end tell
	
	delay 20
	
end tell
tell application "Microsoft Excel"
	save
	quit
end tell
Das klappt auch bis auf 2 Dinge. Der "delete" Befehl klappt nur wenn die Spalten einzeln benannt werden. Also delete column 1 of...delete column 2 of..
was aber wichtiger ist, Excel fragt nach dem Löschen der Blätter ob sie tatsächlich gelöscht werden sollen. Ich finde im Programm keine Möglichkeit diese Meldung zu unterlassen.
Kann ich diese Antwort mit AS erledigen??
und wenn ja wie??
cosmo
 
Schau mal, ob du nicht ein Property entsprechend setzen kannst, z.B. display alerts auf false, laut Excel-Dictionary steht das nämlich für: »Returns or sets if Microsoft Excel displays certain alerts and messages while a VB macro is running.« Möglicherweise sind diese Sicherheitsabfragen beim Löschen ebenfalls davon betroffen. Schau dir auch den hier an: alert before overwriting. Vielleicht brauchst auch nur in den Einstellungen von Excel selbst etwas umstellen, und nicht in deinem Script?

Hast du schon probiert, statt delete einfach mal delete range zu verwenden? In meinen Excel-Script-Zeiten (lang, lang ists her) hab ich immer nur mit den range-Kommandos gearbeitet.
 
Die Alerts kann man nur mit VBA aus- und wieder einschalten.

Zum generellen Problem:
Warum soll Excel VBA NICHT ein paar Zeilen, Tabellen etc löschen und sich dann selbst beenden können? Wo/Was ist denn Deine ursprüngliche Frage?
 
Problem gelöst.
Code:
	end tell
	tell application "Microsoft Excel"
		set display alerts to false
das wars. Jetzt läuft alles durch. Automator holt mir die Datei vom Webspace und legt sie mir auf meinen Desktop.
Applescript öffnet sie und löscht einige Spalten, einige Blätter und schließt die Datei wieder. Dann reicht der Automator sie weiter an Mail und Mail versendet sie an eine Empfängergruppe. Super!! Das ganze lege ich noch als Script in iCal und dann erledigt sich die Arbeit einmal pro Woche von selbst.
Für 0 Ahnung von Applescript nicht schlecht.
Allerdings musste ich viel testen. Das löschen der Spalten hat auch nur geklappt wenn die letzte zu erst gelöscht wurde.
Also erst 20,18,13, usw. Vielleicht gibt es auch eine Möglichkeit die Kopfzeilen der Tabelle anzusprechen aber das hab ich nicht geblickt.
Immerhin läuft alles.
cosmo :D
 
Zurück
Oben Unten