MACRO : Problème " Erreur d'exécution '1004' " [Résolu/Fermé]

Signaler
Messages postés
31
Date d'inscription
lundi 26 mars 2018
Statut
Membre
Dernière intervention
14 juin 2019
-
Messages postés
31
Date d'inscription
lundi 26 mars 2018
Statut
Membre
Dernière intervention
14 juin 2019
-
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

Messages postés
6930
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
25 septembre 2020
552
Bonjour,

Je pense que cela provient de la Formule qui n'est pas conforme.
Essaie avec l'enregistreur de macro d'écrire ta formule . Tu verras où cela pêche!
Messages postés
31
Date d'inscription
lundi 26 mars 2018
Statut
Membre
Dernière intervention
14 juin 2019

J'ai essayé avec une autre formule plus simple mais ça me met toujours le même message d'erreur.
Messages postés
23504
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
26 septembre 2020
6 364
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

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
Messages postés
31
Date d'inscription
lundi 26 mars 2018
Statut
Membre
Dernière intervention
14 juin 2019

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
Messages postés
23504
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
26 septembre 2020
6 364
Bonjour,

Par contre je ne comprends pas la formule que tu as changé
Plus précisément ?
eric.
Messages postés
31
Date d'inscription
lundi 26 mars 2018
Statut
Membre
Dernière intervention
14 juin 2019

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