[Calc Basic makro] Spaltennummer ausgeben lassen Gelöst! =)

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

[Calc Basic makro] Spaltennummer ausgeben lassen Gelöst! =)

Beitrag von schnubber »

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
Zuletzt geändert von schnubber am Do, 31.03.2011 14:45, insgesamt 1-mal geändert.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: [Calc Basic makro] Spaltennummer ausgeben lassen

Beitrag von Karolus »

Hallo


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
Der "Select ...Case" -Block ist weitgehend identisch mit dem zugehörigen Text aus der → OOo-Hilfe

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)
schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

Re: [Calc Basic makro] Spaltennummer ausgeben lassen

Beitrag von schnubber »

Karolus hat geschrieben:Hallo


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
Der "Select ...Case" -Block ist weitgehend identisch mit dem zugehörigen Text aus der → OOo-Hilfe

Gruß Karo
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 grundwissen
ich danke dir für die hilfe es hat mich schon mal weiter gebracht =)
gruß schnubber
schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

Re: [Calc Basic makro] Spaltennummer ausgeben lassen

Beitrag von schnubber »

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
      
  
ich schaffe nur die zelle zu färben wo "E-mail" steht aber nicht die spalte zu definieren
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: [Calc Basic makro] Spaltennummer ausgeben lassen

Beitrag von Karolus »

Hallo
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
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)
schnubber
**
Beiträge: 33
Registriert: Fr, 25.03.2011 09:46

Re: [Calc Basic makro] Spaltennummer ausgeben lassen

Beitrag von schnubber »

Karolus hat geschrieben:Hallo
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
Gruß Karo
boah du ettest mir das leben xD ^^ danke!
Antworten