(gelöst)eingegebene Werte in einer Reihe eintragen

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

Moderator: Moderatoren

Taghor
**
Beiträge: 45
Registriert: So, 18.05.2014 03:08

(gelöst)eingegebene Werte in einer Reihe eintragen

Beitrag von Taghor »

Hallo,
meine Formel wurde gerade hier schon weiter verbessert . Habe noch ne Frage
ich würde gerne Die Zahl die ich in Spalte D eintrage und dann in G nochmal vom Macro eingetragen wird.
Naja ich würde gerne die ganzen Zahlen die ich in D eintrage das die hinten ca. 30 Posistionen weiter rechts nochmal eingetragen werden
aber auf einer Breite von ca. 50 oder 100 Einträgen und dann vieleicht wieder von vorne anfängt.
Ich habe gestern schon mit nen paar schleifen usw rumgepielt und er hatte auch mal was eingetragen nur nich so wie ich es wollte :-)
vieleicht hat ja einer eine Anregung für mich.

Code: Alles auswählen

Sub AddItNnow(event)
	odoc=thisComponent
	oSheet = oDoc.sheets(0)
	oZelle = oDoc.getCurrentSelection()
	iStartCol = oZelle.RangeAddress.StartColumn
	iStartRow = oZelle.RangeAddress.StartRow

	if iStartCol = 3 then

		if iStartRow < 200 and iStartRow > 1 then   rem Zeilen begrenzung
		addValueMaxHp = osheet.getCellByPosition(iStartCol+2,iStartRow).value rem Spalte F auslesen. addValueMaxHp
		addValue = osheet.getCellByPosition(iStartCol,iStartRow).value REM Spalte D auslesen. addValue Schaden
 		addValue2 = osheet.getCellByPosition(iStartCol+1,iStartRow).value  REM Spalte E auslesen. addValue2 (mom.HP)

	    	if addValueMaxHp = 0 then
			osheet.getCellByPosition(iStartCol+2,iStartRow).string = "Max.HP"  rem addValueMaxHp
			osheet.getCellByPosition(iStartCol,iStartRow).string = ""
	    	else

 					if osheet.getCellByPosition(iStartCol+1,iStartRow).type = 0 then '  liefert True, wenn die Zelle leer ist
    				osheet.getCellByPosition(iStartCol+1,iStartRow).value = addValueMaxHp-addValue
					osheet.getCellByPosition(iStartCol+3,iStartRow).value = addValue
  					osheet.getCellByPosition(iStartCol,iStartRow).string = ""

					else
					osheet.getCellByPosition(iStartCol+1,iStartRow).value = addValue2-addValue
					osheet.getCellByPosition(iStartCol+3,iStartRow).value = addValue
					osheet.getCellByPosition(iStartCol,iStartRow).string = ""
	

  	      		 	end if
  
  
    		end if

		end if
	end if 

end sub
So wenn ich jetzt in D7 eine Zahl eintrage dann rechnet er damit und trägt sie in G7 nochmal ein
jetzt wollte ich gerne das er die nochmal in Z.b. BA7 einträgt
dann gebe ich in D7 die nächste Zahl ein die er in G7 einträgt und jetzt zuzätzlich in BB7 einträgt usw BC7 ....


Diesen Post habe ich im anderen Forum auch drinnen stehen weil ich da mit einem anderen Problem angefangen bin.
https://www.openoffice-forum.de/viewtop ... 21&t=12619
Zuletzt geändert von Taghor am Di, 11.12.2018 20:27, insgesamt 2-mal geändert.
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: eingegebene Werte in einer Reihe eintragen

Beitrag von Toxitom »

Hey Taghor,

hmm, die Techniken haste doch schon alle;))

lass halt ne Schleife mitlaufen: Spalte "BA" wäre Index 52, also so ne Schleife wie

Code: Alles auswählen

for i = 52 to 152
         if osheet.getCellByPosition(i,iStartRow).type = 0 then
            osheet.getCellByPosition(i,iStartRow).value = addValue
            exit for
          elseif i = 152  then   'falls der Bereich schon voll ist
            osheet.getCellRangeByPosition(52,iStartRow, 152,iStartRow).clearContents(1+2+4+16)   ' entfernt alle Werte, 'Texte ud Formeln
            osheet.getCellByPosition(52,iStartRow).value = addValue
          end if
next
          
Passend einbauen ... fertig.

VG
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Taghor
**
Beiträge: 45
Registriert: So, 18.05.2014 03:08

Re: eingegebene Werte in einer Reihe eintragen

Beitrag von Taghor »

Jo habs ans Ende gebasteln funktioniert danke.

Jo ich hatte schon mit schleifen versucht hatte es aber nicht so hinbekommen das er mir immer nur 1 weiter einträgt danke.
Antworten