Seite 1 von 1

(gelöst)eingegebene Werte in einer Reihe eintragen

Verfasst: Sa, 08.12.2018 15:10
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

Re: eingegebene Werte in einer Reihe eintragen

Verfasst: Sa, 08.12.2018 17:41
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

Re: eingegebene Werte in einer Reihe eintragen

Verfasst: So, 09.12.2018 00:45
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.