nochmal Excelblatt

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von cosmovitelli, 31.12.2005.

  1. cosmovitelli

    cosmovitelli Thread Starter MacUser Mitglied

    Beiträge:
    268
    Zustimmungen:
    0
    MacUser seit:
    04.10.2004
    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
     
  2. mekkablue

    mekkablue MacUser Mitglied

    Beiträge:
    738
    Zustimmungen:
    46
    MacUser seit:
    28.01.2005
    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.
     
  3. Jabba

    Jabba MacUser Mitglied

    Beiträge:
    4.465
    Zustimmungen:
    109
    MacUser seit:
    21.11.2003
    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?
     
  4. cosmovitelli

    cosmovitelli Thread Starter MacUser Mitglied

    Beiträge:
    268
    Zustimmungen:
    0
    MacUser seit:
    04.10.2004
    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
     
Die Seite wird geladen...
Ähnliche Themen - nochmal Excelblatt
  1. oe7
    Antworten:
    0
    Aufrufe:
    436