XL 2016 Erreur syntaxe autofill de deux ligne jusqu'à dernière colonne non vide

Nicocotte125

XLDnaute Nouveau
Bonjour

J'ai un problème un peu sioux qui nécessite que j'active l'affichage d'un onglet pour que le code accepte d'exécuter la ligne de commande (la dernière ligne du code ci-dessous)
La où ca devient tortueux c'est que mon l'Autofill jusqu'à la dernière ligne fonctionne à merveille...
Alors que l'Autofill jusqu'à la dernière colonne n'accepte pas de s'éxécuter si l'onglet "Mvt ART" n'est pas actif (me retournant une erreur 1004 - Erreur définie par l'application ou l'objet)

VB:
Dim Derniere_Ligne_TDMvtART  As Variant: Derniere_Ligne_TDMvtART = 0
Dim Derniere_Colonne_TDMvtART As Variant: Derniere_Colonne_TDMvtART = 0
               
Derniere_Ligne_TDMvtART = ThisWorkbook.Sheets("Mvt ART").Cells(Rows.Count, 2).End(xlUp).Row
Derniere_Colonne_TDMvtART = ThisWorkbook.Sheets("Mvt ART").Cells(4, Columns.Count).End(xlToLeft).Column
               
ThisWorkbook.Sheets("Mvt ART").Range("A5").FormulaR1C1 = "=VLOOKUP(RC[1],Mouvements!C7:C8,2,FALSE)"
ThisWorkbook.Sheets("Mvt ART").Range("A5").AutoFill Destination:=ThisWorkbook.Sheets("Mvt ART").Range("A5:A" & Derniere_Ligne_TDMvtART), Type:=xlFillDefault
ThisWorkbook.Sheets("Mvt ART").Range("D2").FormulaR1C1 = "=R[2]C-R[2]C[-1]"
ThisWorkbook.Sheets("Mvt ART").Range("D1").FormulaR1C1 = "=R[3]C"

'La ligne suivante pose problème
'Je ne peux la faire passer qu'en mode pas à pas en activant l'affichage de l'onglet concerné "Mvt ART"

ThisWorkbook.Sheets("Mvt ART").Range("D1:D2").AutoFill Destination:=ThisWorkbook.Sheets("Mvt ART").Range("D1", Cells(2, Derniere_Colonne_TDMvtART)), Type:=xlFillDefault

SI quelqu'un à une idée je l'en remercie par avance.
 

AtTheOne

XLDnaute Accro
Supporter XLD
Bonsoir @Nicocotte125

Je crois que le problème vient de Cells(2,Derniere_Colonne_TDMvtART)) qui pointe vers la feuille active.
tu peux essayer (bien mettre les points .)
Enrichi (BBcode):
With ThisWorkbook.Sheets("Mvt ART")
...
           .Range("D1:D2").AutoFill Destination:=.Range("D1", .Cells(2, Derniere_Colonne_TDMvtART)), Type:=xlFillDefault
End with
Amicalement
Alain
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette