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

VBScript Loop 2D klappt nicht

Frage Entwicklung VB for Applications

Mitglied: waldgnarf

waldgnarf (Level 1) - Jetzt verbinden

06.09.2008, aktualisiert 08.09.2008, 3452 Aufrufe, 5 Kommentare

Hallo, ich versuche mit einem Loop die Notitzen aller Zellen in einem Openoffice Calc Dokument automatisch zu tarnen. Weil ich niergens eine Möglichkeit finden konnte die Notitzen korrekt nach dem abspeichern und neu öffnen ohne IsVisible=True unsichtbar zu machen. In der selben Datei nach dem automatischen neuöffnen findet der Script die ZELLE nichtmer und Annonation wies scheint auch nicht. Ich sehe keine andere Möglichkeit als jede Zelle einzeln abzuklappern und ZELLE.Annotation.IsVisible=False zu setzen, allerdings werden nur die Notitzen in der ersten Zeile getarnt.
01.
INDEX=0 
02.
Set SSM=WScript.CreateObject("com.sun.star.ServiceManager") 
03.
Set DESKTOP=SSM.createInstance("com.sun.star.frame.Desktop") 
04.
Set CALC=DESKTOP.loadComponentFromURL("file:///C:/PFLANZEN.ods", "_blank", 0, Array()) 
05.
Set BLATT=CALC.getSheets().getByIndex(INDEX) 
06.
POSY=0 
07.
POSX=0 
08.
 
09.
Do 
10.
  Set ZELLE=BLATT.getCellByPosition(POSY, POSX) 
11.
  INHALT=ZELLE.getFormula() 
12.
  If INHALT="" Then 
13.
    POSX=POSX+1 
14.
    POSY=0 
15.
    End If 
16.
  ZELLE.Annotation.IsVisible=False 
17.
  POSY=POSY+1 
18.
Loop Until INHALT="" 
19.
 
20.
CALC.store 
21.
CALC.Close (True)


Gruß waldgnarf
Mitglied: bastla
06.09.2008 um 23:47 Uhr
Hallo waldgnarf!

Die Schleife endet, wenn die erste leere Zelle gefunden wird - insofern kann eigentlich nur die erste Zeile bearbeitet werden ...

Wovon Du alternativ das Bearbeitungsende abhängig machen kannst, musst Du selbst wissen - soferne etwa die erste Spalte ausschlaggebend sein sollte (also Ende, wenn die erste Zeile mit einer leeren ersten Zelle gefunden wird), könnte die Zeile 18 etwa so aussehen:
01.
Loop Until BLATT.getCellByPosition(0, POSX).getFormula()=""
Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
07.09.2008 um 19:52 Uhr
Danke es klappt, aber ich hab noch mehrere Seiten in dem Dokument.

01.
Do 
02.
Set ZELLE=BLATT.getCellByPosition(POSY, POSX) 
03.
INHALT=ZELLE.getFormula() 
04.
 
05.
If INHALT="" Then 
06.
POSX=POSX+1 
07.
POSY=0 
08.
 
09.
If INHALT="" Then 
10.
INDEX=INDEX+1 
11.
POSX=0 
12.
End If 
13.
End If 
14.
 
15.
BLATT.getCellByPosition(POSY, POSX).Annotation.IsVisible=False 
16.
POSY=POSY+1 
17.
Loop Until BLATT.getCellByPosition(0, POSX).getFormula()=""
Kann ich das irgendwie umstellen damit der Script auch die verschiedenen Seiten abklappert?
Bitte warten ..
Mitglied: Biber
07.09.2008 um 20:59 Uhr
Moin waldgnarf,

dann leg doch um die existierende DO...LOOP UNTIL-Anweisung noch eine weitere LOOP herum, die von INDEX=0 bis INDEX=CALC.getSheets().Count()-1 läuft.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
07.09.2008 um 21:09 Uhr
@Biber

Wer ist hier der Rechtsüberholer? Eben wollte ich waldgnarf fragen, ob mit "Seiten" Tabellenblätter gemeint wären ...

... denn dann könnte er die, wie von Dir beschrieben, aber ev mit
01.
For INDEX = 0 To CALC.Sheets.Count - 1
(vor Zeile 5) und dem zugehörigen
01.
Next
(am Ende des Scripts) einzeln abklappern ...

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
08.09.2008 um 02:02 Uhr
Vielen Dank ihr beiden, jetzt klappt es mit dem abklappern. =)

Grüße waldgnarf
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Basic
VBScript erweitern für Subfolder (8)

Frage von 132078 zum Thema Basic ...

Windows Installation
gelöst Netzwerkdrucker hinzufügen klappt nicht (13)

Frage von Helios007 zum Thema Windows Installation ...

Windows 7
VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

Peripheriegeräte
2D Barcode Scanner, Pipton ausschalten (5)

Frage von uridium69 zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (18)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Windows 7
gelöst Windows 7 Umzug zum neuen PC (SATA-Problem) (7)

Frage von MaxMoritz6 zum Thema Windows 7 ...