Seite 1 von 1

marko auf selektierte blätter anwenden

Verfasst: Fr, 03.03.2006 20:00
von kannenklaus
hallo zusammen,

folgendes makro soll nicht nur auf das aktive blatt, sondern auf mehrere selektierte blätter angewendet werden. ist diese ansprache mit basic möglich?

Code: Alles auswählen

Sub SpaltenBreite
	Dim oSpalte as Object
	Dim iBreiteSpalte as Integer'Variable für die div. Spaltenbreiten
	calcDoc = ThisComponent
	oAktivesBlatt = calcDoc.CurrentController.activeSheet

'--Spalte A bis K in der Breite festlegen
	For SpNr = 0 to 10
		if oDlg.getControl("numSp"+SpNr).value > 0 then
			iBreiteSpalte = oDlg.getControl("numSp"+SpNr).value
			oSpalte =oAktivesBlatt.getColumns.getByIndex(SpNr)
			oSpalte.width = (iBreiteSpalte) * 100
		end if
	next SpNr
End Sub
freue mich auf eine antwort

grüße

klaus

Verfasst: Fr, 03.03.2006 21:57
von Stephan
ist diese ansprache mit basic möglich?


Ja.
Es liegt eine Mehrfachselektion vor, das diese auf mehreren Blättern 'stattfindet' ändert nichts.
Also die Seletion ermitteln, ggf. prüfen ob Mehrfachselektion vorliegt (was zwangläufig der Fall sein sollte), die Anzahl der Bereiche ermitteln, durch die Einzelbereiche der Selektion interieren und den Blattnamen der Einzelselektion auslesen.

Im Kern:

Code: Alles auswählen

For i = 0 to ThisComponent.getCurrentselection.getCount()-1
x = ThisComponent.getCurrentselection.getByIndex(i).getSpreadSheet.Name
Next i


Gruß
Stephan

Verfasst: Sa, 04.03.2006 08:09
von kannenklaus
hallo stefan,

danke für den tipp. ich werde das versuchen umzusetzen.

grüße

klaus

Verfasst: Sa, 04.03.2006 13:21
von ykcim
Aber aufpassen, wenn das Makro allgemein gültig sein soll.
Eine Mehrfachselektion kann auch aus mehreren Bereichen auf einer Seite bestehen.
Dann wird in der Schleife immer dasselbe Arbeitsblatt verwendet.

mfg
Michael