Poser votre question
0

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

posée 2019-08-31 14:34:01 +0200

Image Gravatar de MiPaquet

updated 2019-09-03 16:48:18 +0200

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
éditer requalifier signaler fermer fusionner supprimer

1Réponse

0

répondue 2019-09-02 11:36:45 +0200

Image Gravatar de MiPaquet

updated 2019-09-03 16:47:30 +0200

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?

éditer signaler supprimer permalien plus

Commentaires

Pour la balise j'ai aussi trouvé ;-)

Image Gravatar de MiPaquetMiPaquet ( 2019-09-04 10:45:23 +0200 )éditer

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

Image Gravatar de MiPaquetMiPaquet ( 2019-09-04 10:47:56 +0200 )éditer
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2019-08-31 14:34:01 +0200

Consultée: 17 fois

Mise à jour: Sep 03