Interpréteur attend argument(s) pour une variable string

Dans le code suivant, bien que la variable soit définie comme un “string” l’interpréteur me donne le message :
Erreur d’exécution BASIC.
L’argument n’est pas facultatif.

Je ne comprends pas ce que l’interpréteur attend…

Pouvez-vous m’aider?
Merci.

Code de la SUB:

 Sub Build_Matrice_Base(Cordes() as string, nTonique as string, Mat_B() as integer, MajMin as boolean)
 	dim xDoc as object
 	dim xSheets as object
 	dim xSheet as object
 	dim CellRange as object
dim xCell as object
 	'	dim xCell1 as object
 		dim xRange as object
 		Dim I as integer
 		Dim Nbr_Cordes as integer
 		Dim Cordes(1 to 8) as string
 		Dim A as boolean, AA$
 		redim MajMin as boolean
 		
 		xDoc = ThisComponent
 		xSheets = xDoc.Sheets
 		xSheet = xSheets.getByName("Données")
 		xCell = xSheet.getCellrangeByName("Nombre_Cordes")
 		xRange = xSheet.getCellrangeByName("Notes_Cordes")
 		
 		if xCell.FormulaResultType = com.sun.star.table.CellContentType.VALUE then
 			Nbr_Cordes = xCell.value
 		else
 			Nbr_Cordes = xCell.String
 		end if
 		
 		Redim Cordes(1 to Nbr_Cordes) as string
 		
 		For I =  Nbr_Cordes to 1 step -1
 			Cordes(I) =trim(xRange.getCellByPosition(0,I-1).string)
     	next

 		xCell = xSheet.getCellrangeByName("B17")

 		A = xSheet.getCellrangeByName("B17").value	'Fonctionne
 	
 	'	MajMin = xCell.value						'Donne l'erreur citée
 	
 		xCell = xSheet.getCellrangeByName("B15")
 	
 		AA$ = xCell.string
 		
 		AA$ =trim(AA$)
 		
 	'	nTonique = xCell.string						'Donne l'erreur citée
 	
 		
 	'	nTonique = trim(nTonique)
 		
 	
 		
 	end sub

Jai trouvé: C’est une erreur dans l’interpréteur!

(Ou, plutôt, une erreur dans mon interprétation de ce que devrait faire l’interpréteur)

Les arguments d’une SUB doivent exister soit dans l’appel de la SUB soit sous forme de DIM dans la sub (soit sous forme de DIM GLOBAL) s’ils sont créés dans la sub correspondante.

Déclarer le type d’un argument dans la SUB ne contient pas de DIM implicite!!!

(comme en VBA par exemple ou la déclaration du type de l’argument implique un DIM Ssi l’argument n’est pas existant et une vérification de concordance de type dans le cas ou il est existant (sauf si déclaré comme Variant qui couvre tous les types))

Alors pourquoi le faire?

Y a-t-il une conversion d’un type de variable à l’autre en cas de conflit ou simplement un message d’erreur?

A tester.

Il fallait le savoir.

Bête question: comment je fais pour ajouter “Macro” comme balise?

Pour la balise j’ai aussi trouvé :wink:

Comme j’ai moins que 20 points je ne peux approuver ma réponse…
Et je ne vais pas voter pour moi! (Si?)