Brauche Hilfe bei einer Funktion

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: Brauche Hilfe bei einer Funktion

Re: Brauche Hilfe bei einer Funktion

von Karolus » Do, 19.07.2012 22:18

Hallo

Ich wollte eigentlich nur die überflüssigen oder sinnlosen Teile entfernen, und nicht beweisen das alles in einer Zeile geht.

Karo

Re: Brauche Hilfe bei einer Funktion

von Karolus » Do, 19.07.2012 21:22

Hallo

Gut, aber dann kannst du auch gleich .getActiveSheet ( ohne .getName() ) nehmen, und vor allem aufräumen:

Code: Alles auswählen

Sub plus1 ( oEvent )
   Doc = thisComponent
   sheet = Doc.getCurrentController.getActiveSheet()
   cellname = oEvent.Source.Model.Name
   ocell = sheet.getCellRangeByName( cellname )
   ocell.value = ocell.value + 1
End Sub
Karo

Re: Brauche Hilfe bei einer Funktion

von jhaas » Do, 19.07.2012 20:43

Danke für die Hilfe, habe aber schon eine eigene Möglichkeit gefunden.
Ist vielleicht ein bisschen komplizierter, aber es funktioniert.
Hier der Code:

Code: Alles auswählen

Sub plus1 ( oEvent )
	myDoc = thisComponent
	dim Tabellenname as string
	Tabellenname = ThisComponent.getCurrentController.getActiveSheet.getName()
	dim targetcell as string
	targetcell = oEvent.Source.Model.Name
	odoc=ThisComponent
	mySheet = oDoc.Sheets.getByName(Tabellenname)
	mycell=mysheet.getCellRangeByName(targetcell) 
	mycell.value = mycell.value + 1
End Sub
Edit: Dann braucht man auch keinen Namen der Tabelle eingeben, weil sich das Makro den selber raussucht.

Re: Brauche Hilfe bei einer Funktion

von Karolus » Do, 19.07.2012 19:52

Hallo

Trag für die Schaltflächen jeweils unter →Allgemein→Hilfetext den Tabellennamen ein.

Den bekommst du dann im Makro über:

Code: Alles auswählen

sheetname = event.Source.Model.HelpText
Karo

Brauche Hilfe bei einer Funktion

von jhaas » Do, 19.07.2012 19:14

Hallo!

Ich habe einen Button erstellt, der in einer Zelle +1 macht.
Er funktioniert ohne Probleme, aber wenn ich diesen Button in einer 2.Tabelle betätige, dann ändert er den Wert trotzdem bei Tabelle 1.
Das Makro ist schon etwas älter und ich habe damals einfach getByName ("Tabelle1") verwendet.
Jedoch möchte ich, dass er die Funktion immer für die aktuelle Tabelle ausführt, ohne extra ein Makro erstellen zu müssen.
Ich habe auch schon gesehen, dass die Funktion getActiveSheet existiert, jedoch funktioniert diese nicht.
Könnt ihr mir helfen?

Der Code:

Code: Alles auswählen

Sub plus1 ( oEvent )
	myDoc = thisComponent
	dim targetcell as string
	targetcell = oEvent.Source.Model.Name
	mySheet = myDoc.Sheets().getByName("Tabelle1")  <-- wenn man es zu getActiveSheet setzt, funktioniert es nicht mehr
	mycell=mysheet.getCellRangeByName(targetcell) 
	mycell.value = mycell.value + 1
End Sub

Nach oben