[gelöst] IF...THEN in Makro implementieren

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

Moderator: Moderatoren

Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

[gelöst] IF...THEN in Makro implementieren

Beitrag von Ouagadougou »

Hallo Community,

ich bin gerade dabei ein Makro zu schreiben, dass eine bestimmte Aktion durchführt, wenn eine Bedingung erfüllt ist. Also ein klassischer Fall für IF, THEN, ELSE.

Die Durchfühung der Aktion für sich funktioniert wie gewünscht, ich habe Probleme mit der IF-Bedingung. Es öffnet sich beim Durchführen des Makros immer folgender Dialog: "BASIC-Syntaxfehler. Erwartet then."

Hier mein Code:

Code: Alles auswählen

Sub ZellenSprung

	myDoc = thisComponent
   	myView = myDoc.CurrentController
  	mysheet = myDoc.sheets(1)
   
  	ZelleJan =  mysheet.getCellByPosition(0,1)
  	
  	KontoJan =  mysheet.getCellByPosition(17,45)
  	KontoFeb =  mysheet.getCellByPosition(17,92)
  	KontoMar =  mysheet.getCellByPosition(17,139)
  	  	
  	IF KontoJan <>"+CHR$(34)+CHR$(34)+" and KontoFeb ="+CHR$(34)+CHR$(34)+" and KontoMar ="+CHR$(34)+CHR$(34)+"
  		THEN myView.Select(ZelleJan)
			 myDoc.getCurrentController().setFirstVisibleRow(1) 
	End IF
	
End Sub
Ich weiß nicht mehr weiter und hoffe von euch neue Impulse zu bekommen.

Liebe Grüße,
Ouagadougou
Zuletzt geändert von Ouagadougou am Do, 08.02.2018 16:45, insgesamt 1-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: IF...THEN in Makro implementieren

Beitrag von Stephan »

Das Then gehört in dieselbe Zeile wie die Bedingung (oder per Verwendung von "_" in nächste Zeile), außerdem stimmte Einiges Weitere nicht:

Code: Alles auswählen

Sub ZellenSprung
	myDoc = thisComponent
   	myView = myDoc.CurrentController
  	mysheet = myDoc.sheets(1)
   
  	ZelleJan =  mysheet.getCellByPosition(0,1).String
  	
  	KontoJan =  mysheet.getCellByPosition(17,45).String
  	KontoFeb =  mysheet.getCellByPosition(17,92).String
  	KontoMar =  mysheet.getCellByPosition(17,139).String
  	  	
  	IF KontoJan <> CHR$(34)&CHR$(34) and KontoFeb = CHR$(34)&CHR$(34) and KontoMar = CHR$(34)&CHR$(34) THEN
  		 myView.Select(ZelleJan)
			 myDoc.getCurrentController().setFirstVisibleRow(1) 
	End IF
	
End Sub


Gruß
Stephan
Ouagadougou
**
Beiträge: 27
Registriert: Mi, 01.02.2017 11:13

Re: IF...THEN in Makro implementieren

Beitrag von Ouagadougou »

Hallo Stephan,

vielen Dannk für deine schnelle und gute Antwort. Ich habe mein Problem damit einwandfrei lösen können.

EDIT: der String bei

Code: Alles auswählen

ZelleJan =  mysheet.getCellByPosition(0,1).String
darf allerdings dort nicht stehen, damit die Aktion durchgeführt werden kann.

Gruß
Ouagadougou
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: IF...THEN in Makro implementieren

Beitrag von Stephan »

Ouagadougou hat geschrieben: Do, 08.02.2018 16:44
EDIT: der String bei

Code: Alles auswählen

ZelleJan =  mysheet.getCellByPosition(0,1).String
darf allerdings dort nicht stehen, damit die Aktion durchgeführt werden kann.
Ja, stimmt, da habe ich nicht aufgepasst, die Zeile muss so bleiben wie sie war:

Code: Alles auswählen

ZelleJan =  mysheet.getCellByPosition(0,1)
weil es um das Zellobjekt geht, das dann in:

Code: Alles auswählen

myView.Select(ZelleJan)
benötigt wird.


Gruß
Stephan
Antworten