Selection.AutoFill Colonne à coordonées dynamiques [Résolu]

Mikmak47 5 Messages postés vendredi 1 octobre 2010Date d'inscription 7 janvier 2011 Dernière intervention - 19 oct. 2010 à 16:37 - Dernière réponse : bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention
- 20 oct. 2010 à 11:19
Bonjour,

J'ai besoin de faire un Selection.AutoFill dans une colonne en fonction de la longueur de ses colonnes voisines (qui peuvent varier).

Un RECHERVEV() me retourne une date (jj/mm/aa) dans la cellule H125, et je veux l'étendre plus loin dans la colonne en l'arrêtant à la ligne correspondant à la dernière de la colonne voisine.

J'ai déjà essayé ceci:

i = Range("E7").End(xlDown).Offset(0, 1).Select
Selection.AutoFill Destination:=Range("H125:H" & i), Type:=xlFillDefault

Donc à moins qu'il y ait une autre solution, mon problème vient du fait que je ne sais pas déclarer la variable i correctement.

Merci.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 19 oct. 2010 à 21:49
3
Merci
oups !

Dim i As Range
set i = Range("E7").End(xlDown).Offset(0, 1)
i.AutoFill Destination:=Range("H125:H" & i.row), Type:=xlFillDefault

Merci bigfish_le vrai 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 19 oct. 2010 à 21:48
0
Merci
Salut,

oui effectivement un peu de mélange autour de ta variable i

2 solutions a partir de ton idée:

-ne nécessite pas de variable
Range("E7").End(xlDown).Offset(0, 1).Select
Selection.AutoFill Destination:=Range("H125:H" & i), Type:=xlFillDefault 


-via une variable
Dim i As Range
set i = Range("E7").End(xlDown).Offset(0, 1)
i.AutoFill Destination:=Range("H125:H" & i), Type:=xlFillDefault


Dans ce deuxième cas la variable i est dimensionné pour contenir un objet de type range. Cela peut donc etre une cellule ou une plage de cellules qui sont des objets. Comme toute variable de type objet le signe = ne suffit pas pour lui assigner un objet. Pour cela il faut utiliser "Set"

Préfère la deuxième solution a la première car cela évite les sélections source d'erreurs de lenteur et d'épilepsie.

A+
Commenter la réponse de bigfish_le vrai
Mikmak47 5 Messages postés vendredi 1 octobre 2010Date d'inscription 7 janvier 2011 Dernière intervention - 20 oct. 2010 à 08:47
0
Merci
Ok merci niquel!

Mais ce que je ne comprend pas dans le premier cas, c'est pourquoi la variable i n'est pas déclarée?

J'avais effectivement essayé la seconde solution, mais cela ne marchant pas à cause d'un problème de syntaxe j'avais abandonné l'idée.
Commenter la réponse de Mikmak47
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 20 oct. 2010 à 11:19
0
Merci
oui effectivement j'ai zapé la variable dans le premier cas qui aurait du s'ecrire :

Range("E7").End(xlDown).Offset(0, 1).Select
Selection.AutoFill Destination:=Range("H125:H" & selection.row), Type:=xlFillDefault 


une solution intermediaire pour repondre à ta question:

Dim i As Long
Range("E7").End(xlDown).Offset(0, 1).Select
i = Selection.row 'i prend ici, comme valeur, le numero de ligne de la selection
Selection.AutoFill Destination:=Range("H125:H" & i), Type:=xlFillDefault 


A+
Commenter la réponse de bigfish_le vrai

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.