Sélection d'une plage de longueur variable

Bonjour à tous !

J'ai un soucis avec la programmation d'une macro et ayant déjà eu des réponses positives sur ce forum pour un autre problème, j'ai décidé de vous demander conseil après avoir cherché une solution sans succès...

Le principe de la macro est simple :

- sélectionner un certain nombre de lignes sur une colonne spécifique, dont la 1ère ligne et la dernière ligne sont des variables (qui auront pour vocation à être modifié au cours de la macro). Sur la sélection, je écrire la même date partout.

Ma base de données contient des milliers de lignes. J'ai pensé à utiliser une boucle pour documenter les cellules, cependant je crains un temps d'exécution bien trop lent, d'où l'idée de sélectionner une plage variable qui se remplirait automatiquement.

J'ai donc codé ceci :

Sub Mise_en_Forme()

[...]

'Mise en forme Janvier
PremLigne = Range("D9")
DernLigne = Range("D" & Nb_Lignes_Calcul)
Plage = Range("PremLigne:DernLigne")

Plage.Select
Selection.Value = DateSerial(2015, 1, 1)

End Sub

Ca ne marche pas au niveau de la 3e ligne (Plage).

Comment corriger le problème ?

Ou est-ce que mon raisonnement est mauvais et il faudra passer par un autre biais pour réaliser ce que je veux faire ?

Merci d'avance pour vos propositions !

Bonjour,

essaie ainsi

Sub Mise_en_Forme()

[...]

'Mise en forme Janvier
PremLigne = Range("D9")
DernLigne = Range("D" & Nb_Lignes_Calcul)
set Plage = Range(premligne & ":" & dernligne)

Plage.Select
Selection.Value = DateSerial(2015, 1, 1)

End Sub
 
h2so4 a écrit :

Bonjour,

essaie ainsi

Sub Mise_en_Forme()

[...]

'Mise en forme Janvier
PremLigne = Range("D9")
DernLigne = Range("D" & Nb_Lignes_Calcul)
set Plage = Range(premligne & ":" & dernligne)

Plage.Select
Selection.Value = DateSerial(2015, 1, 1)

End Sub
 

Merci pour la proposition.

Cependant j'ai une fenêtre qui apparait :

"Erreur d'exécution '1004' :

La méthode 'Range' de l'objet '_Global' a échoué

Quand je clique sur débogage, c'est la ligne "Set Plage = ..." qui est en jaune.

Je viens de trouver la solution

La voici :

Sub Mise_en_Forme()

[...]

'Mise en forme Janvier

PremLigne = 9
DernLigne = Nb_Lignes_Calcul

Colonne = 4

Plage = Range(Cells(PremLigne, Colonne), Cells(DernLigne, Colonne)).Select

Selection.Value = DateSerial(2015, 1, 1)

End Sub

Si ça peut service à quelqu'un... ^^

Pikapi27 a écrit :

Merci pour la proposition.

Cependant j'ai une fenêtre qui apparait :

"Erreur d'exécution '1004' :

La méthode 'Range' de l'objet '_Global' a échoué

Quand je clique sur débogage, c'est la ligne "Set Plage = ..." qui est en jaune.

voici la correction

Sub Mise_en_Forme()

[...]

'Mise en forme Janvier
PremLigne = "D9"
DernLigne = "D" & Nb_Lignes_Calcul
set Plage = Range(premligne & ":" & dernligne)

Plage.Select
Selection.Value = DateSerial(2015, 1, 1)

End Sub
 
Rechercher des sujets similaires à "selection plage longueur variable"