Makro pendant zu =INDIREKT()
Moderator: Moderatoren
Re: Makro pendant zu =INDIREKT()
Hallo
Das müsste gehen über:
___
ocellstring = oSheet1.getCellRangeByName("A1").string
oquellrange = ThisComponent.sheets().getCellRangesbyName( ocellstring )
____
Gruß Karo
Das müsste gehen über:
___
ocellstring = oSheet1.getCellRangeByName("A1").string
oquellrange = ThisComponent.sheets().getCellRangesbyName( ocellstring )
____
Gruß Karo
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: Makro pendant zu =INDIREKT()
Hallo
Entschuldige, ich hatte es vorher nicht ausprobiert, ...getCellRangesbyName(..) erwartet wohl ein Array von Zellbereichsbezeichnungen, du übergibst aber nur eine und willst auch auf diesen Zellbereich zugreifen, daher:
..
oQuellRange = ThisComponent.sheets().getCellRangesbyName(oCellString)(0)
..
Damit gehts dann.
Edit
Ich hab es falsch ausgedrückt, ...getCellRangesbyName(..) liefert ein Array, und du möchtest auf das erste Element daraus zugreifen.
edit_ende
Gruß Karo
Entschuldige, ich hatte es vorher nicht ausprobiert, ...getCellRangesbyName(..) erwartet wohl ein Array von Zellbereichsbezeichnungen, du übergibst aber nur eine und willst auch auf diesen Zellbereich zugreifen, daher:
..
oQuellRange = ThisComponent.sheets().getCellRangesbyName(oCellString)(0)
..
Damit gehts dann.
Edit
Ich hab es falsch ausgedrückt, ...getCellRangesbyName(..) liefert ein Array, und du möchtest auf das erste Element daraus zugreifen.
edit_ende
Gruß Karo
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: Makro pendant zu =INDIREKT()
Hallo
Deine Beispielsdatei funktioniert hier ( OOo3.3 Release unter Linux ) ohne Probleme, versuch mal :
Gruß Karo
Deine Beispielsdatei funktioniert hier ( OOo3.3 Release unter Linux ) ohne Probleme, versuch mal :
Code: Alles auswählen
Sub Main
oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByIndex(0)
oSheet2 = oDocument.Sheets.getByIndex(1)
oCellString = oSheet1.getCellRangeByName("A1").string
oQuellRange = ThisComponent.sheets().getCellRangesbyName(oCellString)
oQuellRange = oQuellRange(0)
oQuellRangeAddresse = oQuellRange.getRangeAddress
oZiel = oSheet2.getCellByPosition(2,5)
oZielCellAdresse=oZiel.getCellAddress
oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
End Sub
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: Makro pendant zu =INDIREKT()
Hallo Leute,
ich klinke mich hier mal ein, da ich eigentlich genau den Code für mich gebrauchen kann. Jedoch habe ich da ein Problem. Denn ich möchte nicht nur einen Bereich, sondern 5 verschiedene an 5 verschiedenen Stellen kopieren. Mit folgendem Code funktioniert es wohl, aber der kommt mir doch zu unelegant vor.
Nun hatte ich ihn auf das hier gekürzt, aber das funktioniert überhaupt nicht wie erhofft.
Es wird nur "AX7" nach "A1" kopiert, also nur der erste Eintrag. Es gibt auch keine Fehlermeldung.
Nun meine Frage.
Läßt sich überhaupt der erstgenannte Code etwas optimieren, oder ist das in diesem Falle nicht möglich?
Wenn keine Optimierung, oder Verbesserung möglich ist, dann ist das okay und bin mit der Antwort zufrieden.
Für eure Bemühungen sag ich schon mal danke.
Freue mich auf eure Antworten
.
Gruß
balu
ich klinke mich hier mal ein, da ich eigentlich genau den Code für mich gebrauchen kann. Jedoch habe ich da ein Problem. Denn ich möchte nicht nur einen Bereich, sondern 5 verschiedene an 5 verschiedenen Stellen kopieren. Mit folgendem Code funktioniert es wohl, aber der kommt mir doch zu unelegant vor.
Code: Alles auswählen
oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByName("Blatt_1")
oSheet2 = oDocument.Sheets.getByName("Blatt_2")
oCellString = oSheet1.getCellRangeByName("AX7").string
oQuellRange = ThisComponent.sheets().getCellRangesbyName(oCellString)
oCellString2 = oSheet1.getCellRangeByName("AX4").string
oQuellRange2 = ThisComponent.sheets().getCellRangesbyName(oCellString2)
oCellString3 = oSheet1.getCellRangeByName("AX6").string
oQuellRange3 = ThisComponent.sheets().getCellRangesbyName(oCellString3)
oCellString4 = oSheet1.getCellRangeByName("AX10").string
oQuellRange4 = ThisComponent.sheets().getCellRangesbyName(oCellString4)
oCellString5 = oSheet1.getCellRangeByName("AX11").string
oQuellRange5 = ThisComponent.sheets().getCellRangesbyName(oCellString5)
oQuellRange = oQuellRange(0)
oQuellRange2 = oQuellRange2(0)
oQuellRange3 = oQuellRange3(0)
oQuellRange4 = oQuellRange4(0)
oQuellRange5 = oQuellRange5(0)
oQuellRangeAddresse = oQuellRange.getRangeAddress
oQuellRangeAddresse2 = oQuellRange2.getRangeAddress
oQuellRangeAddresse3 = oQuellRange3.getRangeAddress
oQuellRangeAddresse4 = oQuellRange4.getRangeAddress
oQuellRangeAddresse5 = oQuellRange5.getRangeAddress
oZiel = oSheet2.getCellRangeByName("A1")
oZiel2 = oSheet2.getCellRangeByName("J1")
oZiel3 = oSheet2.getCellRangeByName("AP1")
oZiel4 = oSheet2.getCellRangeByName("J134")
oZiel5 = oSheet2.getCellRangeByName("AP134")
oZielCellAdresse=oZiel.getCellAddress
oZielCellAdresse2=oZiel2.getCellAddress
oZielCellAdresse3=oZiel3.getCellAddress
oZielCellAdresse4=oZiel4.getCellAddress
oZielCellAdresse5=oZiel5.getCellAddress
oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
oSheet2.copyRange(oZielCellAdresse2,oQuellRangeAddresse2)
oSheet2.copyRange(oZielCellAdresse3,oQuellRangeAddresse3)
oSheet2.copyRange(oZielCellAdresse4,oQuellRangeAddresse4)
oSheet2.copyRange(oZielCellAdresse5,oQuellRangeAddresse5)
Code: Alles auswählen
oDocument = ThisComponent
oSheet1 = oDocument.Sheets.getByName("Blatt_1")
oSheet2 = oDocument.Sheets.getByName("Blatt_2")
oCellString = oSheet1.getCellRangeByName("AX7" , "AX4" , "AX6" , "AX10" , "AX11").string
oQuellRange = ThisComponent.sheets().getCellRangesbyName(oCellString)
oQuellRange = oQuellRange(0,0,0,0,0)
oQuellRangeAddresse = oQuellRange.getRangeAddress
oZiel = oSheet2.getCellRangeByName("A1" , "J1" , "AP1" , "J134" , "AP134")
oZielCellAdresse=oZiel.getCellAddress
oSheet2.copyRange(oZielCellAdresse,oQuellRangeAddresse)
Nun meine Frage.
Läßt sich überhaupt der erstgenannte Code etwas optimieren, oder ist das in diesem Falle nicht möglich?
Wenn keine Optimierung, oder Verbesserung möglich ist, dann ist das okay und bin mit der Antwort zufrieden.
Für eure Bemühungen sag ich schon mal danke.
Freue mich auf eure Antworten

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: Makro pendant zu =INDIREKT()
Hallo
Tuts folgendes: ( Vorsicht ungetestet ! )
Gruß Karo
Tuts folgendes: ( Vorsicht ungetestet ! )
Code: Alles auswählen
sub Test
odoc = thisComponent
osheet1 = odoc.sheets.getbyName("Blatt_1")
osheet2 = odoc.sheets.getbyName("Blatt_2")
Quelladressen = array("AX7", "AX4", "AX6", "AX10", "AX11" )
zieladressen = array("A1", "J1", "AP1", "J134", "AP134")
dim addressstrings(4)
dim ziel(4)
for i = 0 to 4
addressstrings(i) = Quelladdresses(i).string
ziel(i) = osheet2.getcellrangebyName( zieladressen(i)).getcelladdress
next i
oquellranges = odoc.sheets().getcellrangesbyName( addressstrings() )
for i = 0 to 4
osheet2.copyRange( ziel(i) , oquellranges(i).getrangeaddress )
next i
end sub
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: Makro pendant zu =INDIREKT()
Hallo
Ok jetzt mit Test und Test bestanden :
Gruß Karo
Ok jetzt mit Test und Test bestanden :
Code: Alles auswählen
Sub Main
odoc = thisComponent
osheet1 = odoc.sheets.getbyName("Blatt_1")
osheet2 = odoc.sheets.getbyName("Blatt_2")
Quelladressen = array("AX7", "AX4", "AX6", "AX10", "AX11" )
zieladressen = array("A1", "J1", "AP1", "J134", "AP134")
for i = 0 to 4
qaddname = osheet1.getcellrangebyname( Quelladressen(i)).string
adresse = odoc.sheets().getcellrangesbyName( qaddname )
adresse = adresse( 0 ).getrangeaddress
osheet2.copyrange(osheet2.getcellrangebyName( zieladressen(i)).getcelladdress , adresse )
next i
End Sub
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: Makro pendant zu =INDIREKT()
Hallo Karo,
oh ja, es funktioniert einfach wunderbar
.
Ich bin wirklich von Herzen sehr erfreut, dass Du mal wieder so klasse helfen konntest. Ich danke dir vielmals
.
Gruß
balu
oh ja, es funktioniert einfach wunderbar

Ich bin wirklich von Herzen sehr erfreut, dass Du mal wieder so klasse helfen konntest. Ich danke dir vielmals

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden
