Tableau erreur

Bonjour,

Je déclare 4 tableaux que je rempli avec des valeurs de ligne/colonne source et cible :

Function Ecraser()
    Dim Lso, Cso, Lci, Cci, tmp%
    Lso = Split("7 25 43 61 84 93 102 111 20 21 39 38 57 56", " ")
    Cso = Split("9 9 9 9 9 9 9 9 12 12 12 12 12 12", " ")
    Lci = Split("6 7 8 9 10 11 12 13 14 15 16 17 18 19", " ")
    Cci = Split("39 39 39 39 39 39 39 39 39 39 39 39 39 39", " ")
    While tmp <= 170
        If Not (Cells(Lci(tmp), Cci(tmp)).Value = "") Then
            Cells(Lci(tmp), Cci(tmp)).Value = Cells(Lso(tmp), Cso(tmp)).Value
            Cells(Lso(tmp), Cso(tmp)).Value = ""
        End If
        tmp = tmp + 1
    Wend
End Function

j'ai une erreur qui pointe sur :

If Not (Cells(Lci(tmp), Cci(tmp)).Value = "") Then

et un message "erreur définie par l'application ou par l'objet 1004"

Merci par avance

Bonjour,

je ne saurai peut être pas t'aider mais tu devrais mettre un fichier exemple proche de la structure du tien, ça serait + clair pour tous...

P.

Bonjour,

essaie avec

If Not (Cells(clng(Lci(tmp)), clng(Cci(tmp))).Value = "") Then

même punition pour la suite.

Ou bien

Lso = Split(7;25;43;61;84;93 102;111;20;21;39;38;57;56, ";")

etc

que ce soit des numériques et non des chaines.

Et comme dit précédemment prend l'habitude de mettre un fichier de travail allégé au nécessaire, ça suscite les vocations...

eric

Bonjour,

Dans ce cas il aurait été plus indiqué d'utiliser Array plutôt que Split.

Mais je suis aussi intrigué par le tmp<=170. A tmp=14, tu devrais avoir une erreur 9.

Cordialement.

Parfait cela fonctionne,

pas 14 mais 13 car <= et bien vu merci,

Je mettrais une pièce jointe systématiquement désormais.

Function Ecraser()
    Dim Lso, Cso, Lci, Cci, tmp%
    Lso = Split("6 7 8 9 10 11 12 13 14 15 16 17 18 19", " ")
    Cso = Split("39 39 39 39 39 39 39 39 39 39 39 39 39 39 ", " ")
    Lci = Split("7 25 43 61 84 93 102 111 20 21 39 38 57 56", " ")
    Cci = Split("9 9 9 9 9 9 9 9 12 12 12 12 12 12", " ")
    While tmp <= 13
        If Not (Cells(CLng(Lso(tmp)), CLng(Cso(tmp))).Value = "") Then
            Cells((Lci(tmp)), CLng(Cci(tmp))).Value = Cells(CLng(Lso(tmp)), CLng(Cso(tmp))).Value
            Cells(CLng(Lso(tmp)), CLng(Cso(tmp))).Value = ""
        End If
        tmp = tmp + 1
    Wend
End Function

Merci beaucoup à vous

Rechercher des sujets similaires à "tableau erreur"