Erreur d'exécution 1004 lors d'une sélection de range

Bonjour,

Je souhaiterai étendre les dates, d'une colonne (B), pour insérer les dates précédant le 1 janvier.

capture d ecran 2022 04 05 a 19 34 33

Voici l'objectif :

capture d ecran 2022 04 05 a 19 35 01

J'ai essayé de m'adapter en me basant sur la macro que voici :

Selection.AutoFill Destination:=Range("B1:B3"), Type:=xlFillDefault
Range("B1:B3").Select

Mais maintenant j'aimerai définir un range variable en fonction du nombre de jours souhaités, et c'est la que ça coince :

Dim x As Integer

x = InputBox("Nb de jour à rajouter")

Range("B3").Select
Selection.AutoFill Destination:=Range("B1:B" & x), Type:=xlFillDefault
Range("B1:B3").Select

Quand j'effectue ce programme je tombe sur Erreur d'exécution 1004.

Je vous remercie, par avance, pour votre aide.

3classeur1.xlsm (15.57 Ko)

Bonjour Lemarto et bienvenu. bonjour le forum,

J'avoue ne rien comprendre à ton problème. Tu veux faire un AutoFill à l'envers, en remontant ?

Aussi, je ne comprends jamais pourquoi les demandeurs se bornent à envoyer des captures d'écran et pas un fichier Excel !... On n'est pas sur un forum PhotoChope non ?!...

Bonjour et merci ThauThème,

Tu as bien compris, j'aimerai faire un Autofill en remontant mais le nombre de ligne serait variable.

Dans ce cas, je me suis seulement contenté de rajouter 2 jours. Je rajouterai une boucle avec la fonction suivante par la suite pour adapter avec un nombre pouvant varié.

Rows(x).Insert

PS : je rajoute le fichier sous mon premier post.

Bonjour Lemarto, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim DD As Date 'déclare la variable DD (Date de départ)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim X As Integer 'déclare la variable X (incrément)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim PV As Integer 'déclare la variable PV (Première Vide)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Columns(2).NumberFormat = "dd-mmm" 'formate la colonne B
DD = CDate(Range("B3").Value) 'définit la date de départ DD
TV = Range("B3").CurrentRegion 'définit le tableau des valeurs TV
Range("B3").CurrentRegion.ClearContents 'supprime les anciennes valeurs
X = InputBox("Nb de jour à rajouter") 'définit la boîte d'entrée X
For I = X To 1 Step -1 'boucle inversée de X à 1 en remontant
    Range("B3").Offset(J, 0) = DD - I 'renvoie dans la colonne B3 décalée de J lignes vers le bas date de départ - I jours
    J = J + 1 'incrémente J
Next I 'prochaine valeur de la boucle
PV = Cells(Application.Rows.Count, "B").End(xlUp).Row + 1  'définit la première ligne vide PV de la colonne B
Cells(PV, "B").Resize(UBound(TV, 1), 1).Value = TV 'renvoie le tableau des valeurs TV dans PV redimensionnée
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub
Rechercher des sujets similaires à "erreur execution 1004 lors selection range"