🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

if then else end if

Alles zur Programmierung im LibreOffice.
Antworten
tsom
Beiträge: 3
Registriert: Mo 5. Jan 2015, 12:21

if then else end if

Beitrag von tsom » Mo 5. Jan 2015, 13:07

Hallo @all !

Bin ganz neu bei der macro Programmierung und scheitere gleich an einer Kleinigkeit:
Ich möchte das in einer Tabelle nach eingabe eines Begriff's aus einer anderen Tabelle der Preis
Geholt wird. Funktioniert auch aber wenn der Begriff nicht vorhanden ist soll halt ein "--" eingfügt werden.
Genau da scheitert es schon if then else end if funktioniert einfach nicht.
Was habe ich denn übersehen?

Bild
http://www.myimg.de/?img=Tabellea6fd8.png

Übergeben der Werte mit: =MEINWERT(A12:B19;D12) im Ausgabefeld (wo der Preis erscheinen soll)

Mein Makro:

Code: Alles auswählen

REM  *****  BASIC  *****

Function MeinWert (Artikel, Verkauf)

REM Test if then else
	  if Verkauf = "Birne" then
	  	print "in Test if else then " + Verkauf 
	  else 
	  	print "nicht Birne sondern => " + Verkauf
	  endif
	  
	  
	  print Verkauf
	  Ausgabe = ""

	  For Zeile = LBound(Artikel, 1) To UBound(Artikel, 1)
	  
	    For Spalte = LBound(Artikel, 2) To UBound(Artikel, 2)
	      REM Ausgabe = Ausgabe + Str( Artikel(Zeile, Spalte) )
	      
			  IF Artikel(Zeile, Spalte) = Verkauf THEN
			    print Artikel(Zeile, Spalte+1)
		        Ausgabe = Artikel(Zeile, Spalte+1)
		      ELSE
		       Ausgabe = "--"				Rem if then else Fehler !!!!!
			  END IF
		  
	    Next
	    
	  Next

	    print Ausgabe
		MeinWert = Ausgabe
	
End Function
Der code durchläuft nach der if einfach in die else (Verstehe nicht warum!) obwohl er mir mit print einen Treffer ausgibt ;(.

Der Code ist sicher nicht die Glanzleistung und bin auch für andere Vorschläge offen, aber erstmal if Problem.

Vielen DANK im voraus
tsom

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: if then else end if

Beitrag von karolus » Mo 5. Jan 2015, 14:05

Hallo
Was habe ich denn übersehen?
Du hast übersehen daß es bereits SVERWEIS als Calcfunktion gibt.

Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: if then else end if

Beitrag von F3K Total » Mo 5. Jan 2015, 14:10

Moin,
dafür braucht man kein Makro, das kann Calc mit Menü Daten/Gültigkeit ... und der Funktion SVERWEIS().
Durch die Daten/Gültigkeit ... mit gültigem Inhalt Zellbereich kannst Du ausschliessen, dass der Begriff nicht vorhanden ist,
brauchst also keine --
Siehe Beispiel anbei.
Klicke in ein leeres Feld der Spalte Produkt, dann den schwarzen Pfeil, wähle das Produkt, fertig.
Gruß R
Dateianhänge
BSP_DATEN_GUELTIGKEIT_SVERWEIS.ods
(17.75 KiB) 175-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

tsom
Beiträge: 3
Registriert: Mo 5. Jan 2015, 12:21

Re: if then else end if

Beitrag von tsom » Mo 5. Jan 2015, 14:11

SVERWEIS schaue ich mir an. Danke !

Aber was ist mit der "if" ?

Warum geht das nicht ?

tsom
Beiträge: 3
Registriert: Mo 5. Jan 2015, 12:21

Re: if then else end if

Beitrag von tsom » Mo 5. Jan 2015, 16:11

Danke euch Beiden !

Habe mir SVERWEIS angeschaut, ist aber nicht das was ich suche :cry:

Könnte mir einer weiter helfen mit der if Anweisung ?

bzw gibt es noch andere Lösungen oder Ansätze?

Vielen Dank
tsom

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: if then else end if

Beitrag von F3K Total » Mo 5. Jan 2015, 16:35

Ja,
du solltest die Suchschleife verlassen wenn du einen Treffer hast.
z.B. mit

Code: Alles auswählen

exit for
oder sonst ist "Ausgabe" immer mit der letzte Wert.
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten