ChangerUneSélectionDansUneMacro

  • Initiateur de la discussion Initiateur de la discussion Moa
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
134
Réponses
10
Affichages
455
Réponses
1
Affichages
165
Retour