-
Moderator: Moderatoren
Re: getDataArray -> not assignable by given value?
Hallo
An das DataArray eines Namensbereichs kommt man über:
das DataArray besteht immer aus einem äusserem (Zeilen)array mit inneren (Spalten)array's
Karolus
An das DataArray eines Namensbereichs kommt man über:
Code: Alles auswählen
Namerange = oDoc.NamedRanges.getByName("Mengen").getReferredCells().getDataArray()
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: getDataArray -> not assignable by given value?
Moin,
dieser Code funzt:
Sollte sich der Namensbereich ausschließlich in einer Spalte befinden, läßt sich der Code deutlich vereinfachen.
Viel Spaß
Gruß R
dieser Code funzt:
Code: Alles auswählen
Sub S_get_variables
Variables = F_get_solver_variables_from_named_Range("Mengen")
xray Variables
end sub
Function F_get_solver_variables_from_named_Range(S_named_Range)as Object
dim Variables(0) as new com.sun.star.table.CellAddress
oDoc = ThisComponent
oNamedRanges = thiscomponent.NamedRanges
oRangeMengen = oNamedRanges.getbyname(S_named_Range)
oCellRangeMengen = oRangeMengen.ReferredCells
oCellRangeMengenRangeAddress = oCellRangeMengen.RangeAddress
nsheet = oCellRangeMengenRangeAddress.Sheet
oSheet = oDoc.Sheets(nsheet)'Tabelle auf der der Bereich benamst wurde
nSC = oCellRangeMengenRangeAddress.StartColumn
nSR = oCellRangeMengenRangeAddress.StartRow
nEC = oCellRangeMengenRangeAddress.EndColumn
nER = oCellRangeMengenRangeAddress.EndRow
counter = 0
for i = nSC to nEC
for k = nSR to nER
ocell = oSheet.getcellbyposition(i,k)
Redim preserve Variables(counter)
Variables(counter) = ocell.celladdress
counter = counter + 1
next k
next i
F_get_solver_variables_from_named_Range = Variables
End Function
Viel Spaß
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: getDataArray -> not assignable by given value?
Hi,
hast Du auf dem Blatt einen Namen "Mengen" vergeben?
Wann immer du die Zelladressen eines Namensbereiches benötigst, fügst du in deinen Code nur diese Zeile ein:
oder
oder
Gruß R
hast Du auf dem Blatt einen Namen "Mengen" vergeben?
Überhaupt nicht, darum habe ich die Funktion F_get_solver_variables_from_named_Range geschrieben, die natürlich in deinem Modul stehen muß.Ich denke mal, das wäre dann zu kompliziert, oder?
Wann immer du die Zelladressen eines Namensbereiches benötigst, fügst du in deinen Code nur diese Zeile ein:
Code: Alles auswählen
Variables = F_get_solver_variables_from_named_Range("Mengen")
Code: Alles auswählen
Variables = F_get_solver_variables_from_named_Range("Mengen2")
Code: Alles auswählen
Variables = F_get_solver_variables_from_named_Range("Mengenxyz")
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: getDataArray -> not assignable by given value?
Bei mir finde ich keine Einstellung Geltungsbereich! Welche Version von OOo hast Du?miamit hat geschrieben:und der Geltungsbereich ist Dokument/global
Egal, drüber oder drunter.miamit hat geschrieben:über dem Beginn meines Subs einfügen?
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: getDataArray -> not assignable by given value?
Hallihallo,
Lösche einfach diesen Part:
Wenn ich Dein Makro richtig verstehe, übergibst Du die Zelladressen in dieser Zeile an den Solver:
Ersetze in Deinem Code diese Zeile durch:
und es sollte klappen.
Gruß R
heißt nichts weiter, als das Du kein XRay installiert hast, das ist ein Inspection Tool, mit dem ich überprüft habe ob das Ergebnis in Variables() stimmt.miamit hat geschrieben:Wirft Fehler in Zeile 3 raus (xray Variables ) : Sub- oder Function-Prozedur nicht definiert.
Lösche einfach diesen Part:
Code: Alles auswählen
Sub S_get_variables
Variables = F_get_solver_variables_from_named_Range("Mengen")
xray Variables
end sub
Code: Alles auswählen
solv.Variables = Variables()
Code: Alles auswählen
solv.Variables = F_get_solver_variables_from_named_Range("Mengen")
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: getDataArray -> not assignable by given value?
Du sollst nicht die function, sondern Dein Macro starten ... denn wenn du die function startest, fehlt "Mengen", was du in der eben oben geänderten Zeile übergibst.
Dazu gehst Du in dein Tabellenblatt, Extras/Makros/Makro ausführen ...->zum Makro OptimizeDEPS navigieren->Ausführen
Dazu gehst Du in dein Tabellenblatt, Extras/Makros/Makro ausführen ...->zum Makro OptimizeDEPS navigieren->Ausführen
AUF KEINEN FALL!!!Muss ich eigentlich diese hier löschen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO