Problème VBA Copier celulles dans autres celulles

Problème VBA Copier celulles dans autres celulles - VB/VBA/VBS - Programmation

Marsh Posté le 02-12-2004 à 12:17:44    

Bonjour,
 
Ok, voilà j'ai une petite question. J'ai un code permettant de rajouter à mon classeur des portefeuilles (bourse). J'utilise un formule qui cherche la première colonne vide, afin d'y placer les infomartions du portefeuilles en question. Ainsi, si je relance la macro, je peux rajouter portefeuilles sur portefeuilles. J'arrive à selectionner les celulles qui m'intéresse, écrire dedans les bonnes formules, mais je n'arrive pas à faire qu'ensuite depuis la dernière celulle active, elle duplique son information dans les X celulles du dessous. Je connais la méthode suivante pour copier : Range("O3" ).Copy Range("O4:O500" )
Mais elle ne fonctionne pas si je ne connais pas la lettre de référence de la colonne. Et ici c'est le cas, vu que mes informations sont rentrés avec la formule qui les placent dans la première colonne vide.
 
Qui est cette formule :
 
Range("a1" ).End(xlToRight).Select
ActiveCell.Offset(0, 1).Select
 
Je vous colle une partie du code afin que se soit plus clair :
 
Range("a1" ).End(xlToRight).Select
ActiveCell.Offset(0,1).Select
ActiveCell.FormulaR1C1 = "Return "
Range("a1" ).End(xlToRight).Select
ActiveCell.Offset(2,0).Select
ActiveCell.FormulaR1C1 = "=IF('S:\[performance des portefeuilles.xls]Feuil1'!R[3]C2<>"""",VLOOKUP(RC1,'S:\[performance des portefeuilles.xls]Feuil1'!C2:C52,"10",False),"""" )"
'il faudrait qu'ici j'arrive à dire qu'il doit dupliquer la celulle ci-dessus dans les 500 celulles de dessous.
 
Merci beaucoup pour toutes les indications que vous pourrez me donnez.

Reply

Marsh Posté le 02-12-2004 à 12:17:44   

Reply

Marsh Posté le 02-12-2004 à 14:10:33    

Salut,
 
si je comprend bien ton pb est que n'arrive pas a avoir la lettre de la colonne ?
si C bien ça, tu recuperes le numero de colonne
ActiveCell.Column
ensuite
a la place de range tu utilises cell :
range ("A1" ) = cells(1,1)
Range ("B1" ) = cells(1,2) ...

 
pour traduire ton exemple Range("O3" ).Copy Range("O4:O500" ) :
cells(3,ActiveCell.Column).copy
par contre après jcrois que tu dois te taper une boucle pour coller la formule :sweat:  
 
For i = 4 To 500
cells(1,ActiveCell.Column).paste (+ option)
next i

 
 
voila jespere que ça repond a ton pb ...
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed