[Calc Basic makro] Spaltennummer ausgeben lassen Gelöst! =)
Moderator: Moderatoren
[Calc Basic makro] Spaltennummer ausgeben lassen Gelöst! =)
Hallo Forum ,
ich hätt mal eine frage und zwar:
ich finde nicht den befehl in basic wie man sich die spalten nummer ausgeben lassen kann bzw ich habe keine idee ich ich das im script schreiben soll.
Es sollen die spalten von links nach rechts durchgegangen werden mit einem searchdiscriptor und ich will mir die spalten nummer per msgbox ausgeben lassen zb. es wird nach einer spalte gesucht wo un der ersten zelle oben als überschrift "name" steht und diese spalte soll er mit msg box ausgeben .
Das programm geht von links nach rechts durch und findet auf einmal diese spalte ..angenommen es ist spalte "C" dann soll er mir per msgbox sagen "name = spalte 2" (0=a 1=b 2=c falls es einen verwirren sollte) Ich will jetz kein riesen script...sondern nur diesen befehl wie er die spaltennummern erkennt zb get.columbNumber oder so ähnlich (hab ich mir grad ausgedacht xD)
Damit es besser verständlich erkläre ich wie ich es weiter entwickeln möchte:
diese nummer die er findet, will ich weiter verarbeiten und im makro sagen dass zb in unserem fall die spalte mit der nummer 2 so und so behalndelt werden soll und in dieser spalte im makro die und die aktionen durchgeführt werden ...in jeder spalte sind es andere aktionen, deswegen brauch ich diese spaltennummer die das programm automatisch finden soll, damit es in meinem script / im makro weiterverarbeitet werden kann. Kurz gesagt den spaltennummern werden dann methoden/aktionen/vorgehensweisen zugeordnet . Ablauf : suche nach "name" in der obersten zelle der spalten , "name" gefunden: die nummer der spalte wo "name" steht erkennen (den befehl brauche ich) ,da "name"= spalte2 ist, wird in der spalte 2 die und die aktion durchgeführt . Sry dass ich sowiel geschrieben habe dass man bei der hälfte nicht mehr weiter lesen wil xD
ich hoffe dass ihr wisst was ich meine, ich konnts net kürzen...
danke voraus
ich hätt mal eine frage und zwar:
ich finde nicht den befehl in basic wie man sich die spalten nummer ausgeben lassen kann bzw ich habe keine idee ich ich das im script schreiben soll.
Es sollen die spalten von links nach rechts durchgegangen werden mit einem searchdiscriptor und ich will mir die spalten nummer per msgbox ausgeben lassen zb. es wird nach einer spalte gesucht wo un der ersten zelle oben als überschrift "name" steht und diese spalte soll er mit msg box ausgeben .
Das programm geht von links nach rechts durch und findet auf einmal diese spalte ..angenommen es ist spalte "C" dann soll er mir per msgbox sagen "name = spalte 2" (0=a 1=b 2=c falls es einen verwirren sollte) Ich will jetz kein riesen script...sondern nur diesen befehl wie er die spaltennummern erkennt zb get.columbNumber oder so ähnlich (hab ich mir grad ausgedacht xD)
Damit es besser verständlich erkläre ich wie ich es weiter entwickeln möchte:
diese nummer die er findet, will ich weiter verarbeiten und im makro sagen dass zb in unserem fall die spalte mit der nummer 2 so und so behalndelt werden soll und in dieser spalte im makro die und die aktionen durchgeführt werden ...in jeder spalte sind es andere aktionen, deswegen brauch ich diese spaltennummer die das programm automatisch finden soll, damit es in meinem script / im makro weiterverarbeitet werden kann. Kurz gesagt den spaltennummern werden dann methoden/aktionen/vorgehensweisen zugeordnet . Ablauf : suche nach "name" in der obersten zelle der spalten , "name" gefunden: die nummer der spalte wo "name" steht erkennen (den befehl brauche ich) ,da "name"= spalte2 ist, wird in der spalte 2 die und die aktion durchgeführt . Sry dass ich sowiel geschrieben habe dass man bei der hälfte nicht mehr weiter lesen wil xD
ich hoffe dass ihr wisst was ich meine, ich konnts net kürzen...
danke voraus
Zuletzt geändert von schnubber am Do, 31.03.2011 14:45, insgesamt 1-mal geändert.
Re: [Calc Basic makro] Spaltennummer ausgeben lassen
Hallo
Es scheint so als fehlen dir noch elementare Grundlagen - zum Nachdenken:
Der "Select ...Case" -Block ist weitgehend identisch mit dem zugehörigen Text aus der → OOo-Hilfe
Gruß Karo
Es scheint so als fehlen dir noch elementare Grundlagen - zum Nachdenken:
Code: Alles auswählen
sub beispiel
for spalten_index = 0 to 10 'Index von Spalte 1 bis Spalte 11
Select Case spalten_index
Case 0 To 5
Print "Spalte Nummer : " & spalten_index +1
Case 6, 7, 8
Print "zwischen 7. und 9. Spalte"
Case Else
Print "Spaltennr grösser als 9 "
End Select
next spalten_index
end sub
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: [Calc Basic makro] Spaltennummer ausgeben lassen
Jap die grundlagen fehlen mir aber als lehrling is es ganz schön hart man lern im betrieb nicht wie alles begann sondern man fängt gleich sonst wo an deshalb fehlts an grundwissenKarolus hat geschrieben:Hallo
Es scheint so als fehlen dir noch elementare Grundlagen - zum Nachdenken:
Der "Select ...Case" -Block ist weitgehend identisch mit dem zugehörigen Text aus der → OOo-HilfeCode: Alles auswählen
sub beispiel for spalten_index = 0 to 10 'Index von Spalte 1 bis Spalte 11 Select Case spalten_index Case 0 To 5 Print "Spalte Nummer : " & spalten_index +1 Case 6, 7, 8 Print "zwischen 7. und 9. Spalte" Case Else Print "Spaltennr grösser als 9 " End Select next spalten_index end sub
Gruß Karo
ich danke dir für die hilfe es hat mich schon mal weiter gebracht =)
gruß schnubber
Re: [Calc Basic makro] Spaltennummer ausgeben lassen
Code: Alles auswählen
sub spaltenDurchsuchen
'variablen Festlegen
Dim oDoc as Object
Dim oSheet as Object
Dim oSearch as Object, oResult as Object
Dim oFound as Object
Dim n as Long
Dim oSpalte as Object
Dim oZeile as Object
Dim column_index as Object
'Dokument ansprechen
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oSpalte = ThisComponent.Sheets(0).Columns(0)
oZeile = ThisComponent.Sheets(0).Rows(0)
oSearch = oZeile.createSearchDescriptor
oSearch.SearchString = "E-mail"
oSearch.SearchRegularExpression = TRUE
oResult = oZeile.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
oFound. REM hier muss befehl erfolgen zum ausgeben der spaltennummer
Re: [Calc Basic makro] Spaltennummer ausgeben lassen
Hallo
So in etwa:
Gruß Karo
So in etwa:
Code: Alles auswählen
sub spaltenDurchsuchen
'variablen Festlegen
Dim oDoc as Object
Dim oSheet as Object
Dim oSearch as Object, oResult as Object
Dim oFound as Object
Dim n as Long
Dim oSpalte as Object
Dim oZeile as Object
Dim column_index as Object
'Dokument ansprechen
oDoc = ThisComponent
oSheet = oDoc.Sheets.getByIndex(0)
oSpalte = ThisComponent.Sheets(0).Columns(0)
oZeile = ThisComponent.Sheets(0).Rows(0)
oSearch = oZeile.createSearchDescriptor
oSearch.SearchString = "E-Mail"
oSearch.SearchRegularExpression = false ' E-Mail sieht nicht wie RegEx aus !
oResult = oZeile.findAll(oSearch)
For n = 0 To oResult.count - 1
oFound = oResult(n)
if oFound.supportsservice("com.sun.star.table.Cell") then 'einzelne Fundzelle
print ofound.celladdress.column
else 'mehrere benachbarte Zellen in ofound
for i = ofound.rangeaddress.startcolumn to ofound.rangeaddress.endcolumn
print i
next
end if
next
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: [Calc Basic makro] Spaltennummer ausgeben lassen
boah du ettest mir das leben xD ^^ danke!Karolus hat geschrieben:Hallo
So in etwa:Gruß KaroCode: Alles auswählen
sub spaltenDurchsuchen 'variablen Festlegen Dim oDoc as Object Dim oSheet as Object Dim oSearch as Object, oResult as Object Dim oFound as Object Dim n as Long Dim oSpalte as Object Dim oZeile as Object Dim column_index as Object 'Dokument ansprechen oDoc = ThisComponent oSheet = oDoc.Sheets.getByIndex(0) oSpalte = ThisComponent.Sheets(0).Columns(0) oZeile = ThisComponent.Sheets(0).Rows(0) oSearch = oZeile.createSearchDescriptor oSearch.SearchString = "E-Mail" oSearch.SearchRegularExpression = false ' E-Mail sieht nicht wie RegEx aus ! oResult = oZeile.findAll(oSearch) For n = 0 To oResult.count - 1 oFound = oResult(n) if oFound.supportsservice("com.sun.star.table.Cell") then 'einzelne Fundzelle print ofound.celladdress.column else 'mehrere benachbarte Zellen in ofound for i = ofound.rangeaddress.startcolumn to ofound.rangeaddress.endcolumn print i next end if next End Sub