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

Statistiques des forums

Discussions
315 095
Messages
2 116 165
Membres
112 675
dernier inscrit
Tazra_IMOU