Index hors de la plage définie dans une fonction (Calc)

je voudrais juste comparer le contenu de deux colonnes non contigües

Function Test()
dim oClasseur as object, oFeuille as object
Dim iLig As Integer
Dim oCellules1,oCellules2
Dim oLigs1(), oLigs2()
oClasseur = thisComponent

oFeuille = oClasseur.Sheets.getByName("Feuille2")
oCellules1 = oFeuille.getCellRangeByName("N6:N51")
oCellules2 = oFeuille.getCellRangeByName("J6:J51")

oLigs1() = oCellules1.getDataArray()
oLigs2() = oCellules2.getDataArray()
For iLig = LBound(oLigs1()) To UBound(oLigs1())
	if oLigs1(iLig) <> oLigs2(iLig) then
		print oLigs1(iLig),oLigs2(iLig)
	endif
	Next
End Function

je voudrais juste comparer le contenu de deux colonnes non contigües

le message d’erreur au deuxième passage est: “Valeur ou type de données incorrect(e).
Index hors de la plage définie”.

Titre modifié et code reformaté.

Bonjour,
Les tableaux olig1 et olig2 reçoivent respectivement la valeur de oLigs1(iLig) et oLigs2(iLig), donc leur indice ne dépasse pas le 0.
Des variables auraient suffit ou alors il faut écrire
if oLig1(0) <> oLig2(0) then
Claude

Merci pour votre réponse. Je viens de re formuler le petit programme selon ma première idée.
Erreur = “Erreur d’exécution BASIC.Variable d’objet non définie”. Positionnée sur la ligne “if oLigs1 …”
Il me semble que mes variables sont définies?

; Oui mais en tableau.
Dans ce cas il fait Dim oLigs1, oLigs2

Bonjour

C’est un peu plus compliqué que cela : getDataArray() retourne un tableau de tableau (même dans le cas d’une seule cellule). Dans ton cas tu ne travailles que sur une seule colonne mais une plage peut, par définition, inclure plusieurs colonnes.

Quand on parcourt la “première dimension” (par ex les lignes), pour chaque élément, on obtient un tableau (par ex. de colonnes). Dans l’exemple suivant on affiche le contenu de la plage parcourue :

oLigs1() = oCellules1.getDataArray()

nbLig = uBound(oLigs1)
nbCol = uBound(oLigs1(0))

for i = 0 to nbLig
	uneLigne = oLigs1(i)
	for j = 0 to nbCol
		print uneLigne(j)(i)
	next j	
next i

Cordialement

Merci beaucoup pour vos réponses. C’est effectivement un peu plus compliqué. Je n’ai pas encore saisi toutes les subtilités du langage. Je continue mon apprentissage.
Je travaille sur un fichier libreoffice calc d’une auberge de jeunesse: une feuille par semaine, une colonne chaque jour contenant l’occupation des chambres. Je dois déterminer chaque jour le nombre de chambres à faire. Je suis plus familière du langage python.
Merci encore,