MACRO : Problème " Erreur d'exécution '1004' "

Résolu
Bonjour,

J'ai un premier code qui me m'étend automatiquement la formule du cellule sur toute la colonne.

Sub MAJ_Formules()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim Formule
    Set FL1 = Worksheets("Tableau des idées")
    NoCol = 4 'colonne A a adapter
    For NoLig = 8 To Range("D" & Rows.Count).End(xlUp).Row ' dernière ligne remplie
        Var = FL1.Cells(NoLig, NoCol)
        Formule = "=RECHERCHEV(LC(8);Listes!L5C12:L14C13;2;FAUX)" 'on écrit la formule a adapter
Sheets("Tableau des idées").Range("D" & NoLig).FormulaLocal = Formule
    Next
    Set FL1 = Nothing
End Sub


Et quand je souhaite refaire le même code pour une autre colonne (en adaptant sur ma nouvelle colonne bien entendu), il me marque Erreur d'exécution '1004' : Erreur définie par l'application ou par l'objet". Et je ne vois pas d'où peut venir le problème.. Sachant que j'ai 5 autres formules à mettre à jour sur 5 autres colonnes ..

Sub MAJ_Formules_EtapesAMC()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
Dim Formule
    Set FL1 = Worksheets("Tableau des idées")
    NoCol = 12 'colonne A a adapter
    For NoLig = 8 To Range("L" & Rows.Count).End(xlUp).Row ' dernière ligne remplie
        Var = FL1.Cells(NoLig, NoCol)
        Formule = "=SI(LC(10)="";SI(LC(35)="";SI(LC(32)="";SI(LC(29)="";SI(LC(23)="";SI(LC(11)="";SI(LC(6)="";SI(LC(4)="";SI(LC(2)="";SI(LC(-11)="";"";Listes!L5C12);Listes!L6C12);Listes!L7C12);Listes!L8C12);Listes!L9C12);Listes!L10C12);Listes!L11C12);Listes!L12C12);Listes!L13C12);Listes!L14C12)" 'on écrit la formule a adapter
<gras>Sheets("Tableau des idées").Range("L" & NoLig).FormulaLocal = Formule</gras>
    Next
    Set FL1 = Nothing
End Sub


La ligne en jaune est en "GRAS", juste au dessus de Next, dans le code au dessus.

Merci de me lire :)

Bien à vous,

Awzgg

2 réponses

  1. Contributeur
    Bonjour,

    " (l'apostrophe) sert à ouvrir et fermer une chaine.
    Problème : tu en as dans ta formule...
    Il faut les doubler à l'intérieur de la chaine pour qu'elles soient considérées comme un caractère de la chaine.

    J'ai modifier un peu ton code aussi :
    - suppression de Var inutile
    - écriture en une fois au lieu de la boucle (tu as le 8 et le 7 (8-1) à adapter)
    A tester :
    Sub MAJ_Formules_EtapesAMC()
        Dim FL1 As Worksheet
        Dim NoLig As Long, NoCol As Integer
        Dim Formule As String
        Set FL1 = Worksheets("Tableau des idées")
        NoCol = 12    'colonne A a adapter
        Formule = "=SI(LC(10)="""";SI(LC(35)="""";SI(LC(32)="""";SI(LC(29)="""";SI(LC(23)="""";SI(LC(11)="""";SI(LC(6)="""";SI(LC(4)="""";SI(LC(2)="""";SI(LC(-11)="""";"""";Listes!L5C12);Listes!L6C12);Listes!L7C12);Listes!L8C12);Listes!L9C12);Listes!L10C12);Listes!L11C12);Listes!L12C12);Listes!L13C12);Listes!L14C12)"     'on écrit la formule a adapter
        FL1.Range("L8").Resize(Range("L" & Rows.Count).End(xlUp).Row - 7).FormulaLocal = Formule
        Set FL1 = Nothing
    End Sub

    eric

    0
    1. Bonjour Eriiic,

      Désolé pour la réponse tardive mais je ne travaille pas les weekends. ;)

      Je te remercie pour le code, effectivement cela a résolu mon problème. Par contre je ne comprends pas la formule que tu as changé.
      Pourrais-tu, s'il te plait, me donner un peu plus d'explications ? :)

      Cdlt,

      Awzgg
      0
    2. Contributeur
      Bonjour,

      Par contre je ne comprends pas la formule que tu as changé
      Plus précisément ?
      eric.
      0
    3. J'ai relu, et cela à répondu à ma question.

      Au temps pour moi :)

      Merci de ton aide cela fonctionne bien sur les 8 formules.

      bien à toi,

      Awzgg
      0