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.
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 ..
La ligne en jaune est en "GRAS", juste au dessus de Next, dans le code au dessus.
Merci de me lire :)
Bien à vous,
Awzgg
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
-
ContributeurBonjour,
" (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
-
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 -
-
-