Makros aus Excel funktionieren nicht mehr?!

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Makros aus Excel funktionieren nicht mehr?!

von Lobo-mau » Mi, 21.06.2006 21:36

Stephan hat geschrieben:
wo der Zähler doch bei 0 beginnt?
Und was verstehst Du unter "Zähler"?

Code: Alles auswählen

.Count
ist die Anzahl der Tabellen, also nichts zu zählen sondern eine einzige Zahl, und in:

Code: Alles auswählen

ThisComponent.Sheets(i)
ist i der Tabellenindex.
Da nun logischerweise für 3 Tabellen die Anzahl der Tabellen 3 ist (.Count -->=3), die Tabellen aber angesprochen werden mit:

Code: Alles auswählen

ThisComponent.Sheets(0)
ThisComponent.Sheets(1)
ThisComponent.Sheets(2)
ist für 3 Tabellen der höchste Index 2, also .Count-1


Gruß
Stephan
Ahja, ich verstehe.

Der Zähler war für mich die Variable "i". Die hat am Anfang ja den Wert 0. Ich ging davon aus, dass die Tabelle 1 = ThisComponent.Sheets(1) wäre, deswegen wunderte ich mich einmal darüber, dass bei Null begonnen wird und dann noch, dass die Variable i um eins verringert wird.

Aber nun bin ich erleuchtet. ;)

von Stephan » Mi, 21.06.2006 21:11

wo der Zähler doch bei 0 beginnt?
Und was verstehst Du unter "Zähler"?

Code: Alles auswählen

.Count
ist die Anzahl der Tabellen, also nichts zu zählen sondern eine einzige Zahl, und in:

Code: Alles auswählen

ThisComponent.Sheets(i)
ist i der Tabellenindex.
Da nun logischerweise für 3 Tabellen die Anzahl der Tabellen 3 ist (.Count -->=3), die Tabellen aber angesprochen werden mit:

Code: Alles auswählen

ThisComponent.Sheets(0)
ThisComponent.Sheets(1)
ThisComponent.Sheets(2)
ist für 3 Tabellen der höchste Index 2, also .Count-1


Gruß
Stephan

von Lobo-mau » Mi, 21.06.2006 20:25

Stephan hat geschrieben:

Code: Alles auswählen

Sub Blattschutz_setzen() 
For i = 0 To ThisComponent.Sheets().Count-1
	ThisComponent.Sheets(i).protect("Passwort") 
Next i 
End Sub

Gruß
Stephan
Es hat funktioniert! Danke! :)

Aber eine Frage hätte ich noch.

Warum:

Code: Alles auswählen

ThisComponent.Sheets().Count-1
Warum nicht +1, wo der Zähler doch bei 0 beginnt?

von Stephan » Mi, 21.06.2006 19:58

Code: Alles auswählen

Sub Blattschutz_setzen() 
For i = 0 To ThisComponent.Sheets().Count-1
	ThisComponent.Sheets(i).protect("Passwort") 
Next i 
End Sub

Gruß
Stephan

Makros aus Excel funktionieren nicht mehr?!

von Lobo-mau » Mi, 21.06.2006 17:42

Hallo,

zu Hause nutze ich OpenOffice 2.0 und auf der Arbeit Excel (keine Ahnung, welche Version). Nun habe ich mir heute auf der Arbeit eine Tabelle erstellt, die ich zu Hause weiterbearbeiten wollte. Leider musste ich feststellen, dass die ganzen Makros nicht mehr funktionieren.
Ich denke, dass es an Syntaxunterschieden liegt. Leider habe ich keine Ahnung, wie die Syntax aussehen muss.

Ich poste mal ein Makro.
Dieses Makro soll für alle Blätter meiner Arbeitsblätter den Blattschutz aktivieren. Weiss vielleicht jemand, wie es richtig lauten müsste?

Code: Alles auswählen

Sub Blattschutz_setzen()
  For i = 1 To Sheets.Count
    Sheets(i).Activate
    ActiveSheet.Protect Password:="Passwort"
  Next i
  Sheets(1).Activate
End Sub

Nach oben