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

Mikmak47
Messages postés
5
Date d'inscription
vendredi 1 octobre 2010
Dernière intervention
7 janvier 2011
- 19 oct. 2010 à 16:37 - Dernière réponse : bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 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
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 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é 94 internautes ce mois-ci

Commenter la réponse de bigfish_le vrai
bigfish_le vrai
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 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
Messages postés
5
Date d'inscription
vendredi 1 octobre 2010
Dernière intervention
7 janvier 2011
- 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
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
- 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.