ChangerUneSélectionDansUneMacro

M

Moa

Guest
Bonjour à tous et toutes !

Voilà, j'ai une macro, qui fait plein de choses..hihihi..(elle me gratte le dos...si si..), et à la fin, elle copie une formule dans une cellule et la rend active.

Jusque là..no problem...

Mais après je lui demande de recopier cette formule, dans la colonne active vers le bas et là j'ai un problème.

En effet, le nombre de lignes , dans lesquelles, la formule doit être recopiée, est variable.

Cad, des fois il va falloir recopier cette formule sur 300 lignes, mais des fois que sur 50, ou encore 1200 lignes.

Donc comment le dire à ma macro ?

J'ai bien pensé mettre une formule dans une cellule, qui mettrait le nombre de lignes puis de faire référence, dans ma macro à cette cellule, mais je n'y arrive pas.

J'ai recopié la macro complète, pour aider à comprendre, mais en fait, c'est à partir de :

"Selection.AutoFill Destination : = Range ("A1:A300"), qu'il faut trouver la solution

Sheets("Filtrage").Select
Range("A9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Export").Select
Range("B1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=Filtrage!R[8]C[2]&"";""&Filtrage!R[8]C[3]&"";""&Filtrage!R[8]C[4]&"";""&Filtrage!R[8]C[5]&"";""&Filtrage!R[8]C[6]&"";""&Filtrage!R[8]C[7]&"";""&Filtrage!R[8]C[8]&"";""&Filtrage!R[8]C[9]&"";""&Filtrage!R[8]C[10]&"";""&Filtrage!R[8]C[11]&"";""&Filtrage!R[8]C[12]&"";""&Filtrage!R[8]C[13]&"";""&Filtrage!R[8]C[14]"

Range("A1").Select

Selection.AutoFill Destination:=Range("A1:A300")
Range("A1:A300").Select
Range("D1").Select
End Sub


Voilà et merci beaucoup d'avance.

@ +

Moa
 
V

Valérie

Guest
Slt le forum,

Si j'ai tout suivi tu souhaites reproduire ta formule sur les cellules adjacentes à celles collées en colonne B. Soit avec AutoFill

Selection.AutoFill Destination:=Range("A1:A" & Range("B1").End(xlDown).Row)

Soit directement

Range("A1:A" & Range("B1").End(xlDown).Row).FormulaR1C1 = "Ta Formule"

Quant à la ligne qui gratte le dos, je suis preneuse... (hi hi hi...)

@ bientôt
Valérie
 
M

Moa

Guest
Salut Valérie

Je te remercie de m'avoir répondu.

Je viens de tester tes deux formules :

La première fonctionne très bien, mais recopie ma formule jusqu'à A 36665
cad, jusqu'en bas. donc petit hic

La 2è formule, ne fonctionne pas et me donne des messages d'érreurs, et me renvoie par conséquent, au Vbe.

En fait ce qu'il faut arriver à faire c'est à partir de :

"Selection.AutoFill Destination : = Range ("A1:A300"),

Dire selection blabla = Range ("A1:A [valeur de la cellule "x") bla bla

J'ai éssayé plein de syntaxes et formules différentes, mais pas moyen d'y arriver.

Gros merci à toi


@ +

Moa
 
V

Valérie

Guest
Slt Moa

Je viens de tester quque chose qui fonctionne chez moi :

Range("B1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

'Après avoir collé
'Tu désactive le mode copieu colleu
Application.CutCopyMode = False

'La sélection correspond à ce que tu as collé et tu décales d'une colonne à gauche
Selection.Offset(0, -1).FormulaR1C1 = "Ta formule"

@ bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 089
Messages
2 085 206
Membres
102 819
dernier inscrit
Michew13