von Toxitom » Sa, 03.12.2005 11:37
Hey Paule,
so, hier nun das komplette Makro (oder besser die beiden). Das alles sollte ausreichen
Code: Alles auswählen
dim oDoc as object 'global definiert
REM dies Makro aufrufen!
Sub Liste2Start
dim sTab as string, iSpalte as integer
oDoc = thisComponent
osheet = oDoc.sheets.getByName("Ansicht")
sTab = oSheet.getCellByPosition(17,0).string
REM ich gehe davon aus, dass in Zelle(1,2) die Zahl als
REM String (Text) steht!
iSpalte = CInt(oSheet.getCellByPosition(1,2).string)
Liste2Fuellen(sTab, iSpalte) 'Aufruf des nächsten Makros
End Sub
sub Liste2fuellen(sTab as String, iSpalte as integer)
Dim oListBox2 as Object, oForm as Object
oForm = oDoc.sheets.getbyname("Ansicht").Drawpage.Forms(0)
oListBox2 = oForm.getByName("ListBox2")
REM Spaltenarray erzeugen
aSp = array( ,"FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV")
REM Tabellenblatt auswählen
oSheet2 = oDoc.sheets.getByName(sTab)
for i = 3 to 65535
oZelle = oSheet2.getCellRangeByName(aSp(iSpalte) & i)
if oZelle.getType() then
sListe = sListe & ";" & oZelle.string 'wenn Zelle nicht leer
else
exit for 'wenn Zelle leer
end if
next
sListe = right(sListe, len(sListe)-1) 'den führenden Trenner löschen
aListe2 = split(sListe, ";") 'Umwandlung in Array
oListbox2.stringItemList = aListe2() 'eintragen in Liste
end sub
Gruss
Thomas
Hey Paule,
so, hier nun das komplette Makro (oder besser die beiden). Das alles sollte ausreichen :wink:
[code]dim oDoc as object 'global definiert
REM dies Makro aufrufen!
Sub Liste2Start
dim sTab as string, iSpalte as integer
oDoc = thisComponent
osheet = oDoc.sheets.getByName("Ansicht")
sTab = oSheet.getCellByPosition(17,0).string
REM ich gehe davon aus, dass in Zelle(1,2) die Zahl als
REM String (Text) steht!
iSpalte = CInt(oSheet.getCellByPosition(1,2).string)
Liste2Fuellen(sTab, iSpalte) 'Aufruf des nächsten Makros
End Sub
sub Liste2fuellen(sTab as String, iSpalte as integer)
Dim oListBox2 as Object, oForm as Object
oForm = oDoc.sheets.getbyname("Ansicht").Drawpage.Forms(0)
oListBox2 = oForm.getByName("ListBox2")
REM Spaltenarray erzeugen
aSp = array( ,"FO", "FP", "FQ", "FR", "FS", "FT", "FU", "FV")
REM Tabellenblatt auswählen
oSheet2 = oDoc.sheets.getByName(sTab)
for i = 3 to 65535
oZelle = oSheet2.getCellRangeByName(aSp(iSpalte) & i)
if oZelle.getType() then
sListe = sListe & ";" & oZelle.string 'wenn Zelle nicht leer
else
exit for 'wenn Zelle leer
end if
next
sListe = right(sListe, len(sListe)-1) 'den führenden Trenner löschen
aListe2 = split(sListe, ";") 'Umwandlung in Array
oListbox2.stringItemList = aListe2() 'eintragen in Liste
end sub[/code]
Gruss
Thomas