tirer formule dans une macro

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 !

pancaspremium

XLDnaute Occasionnel
bjr
j'essaie de trouver la formulation qui permet dans une macro excel d'appliquer
une formule au nombre de lignes dans le fichier.
explications:
j'ai un fichier excel qui change tous les jours en nombre de lignes et donc
mes formules dans la macro devront s'appliquer au nombre de lignes présentes
dans les colonnes ciblées dans ce fichier qui est lui copié dans le fichier contenant la macro et je lance la macro via ALt f8. mes formules marchent correctement mais lors de la création j'avais 10 lignes et donc dès que le fichier dépasse 10 lignes, la mise en page et formules se mettent à jour que jusque la ligne 10 :-(

autre question peut-on placer un bouton short dans le fichier au lieu de faire alt f8 ??

difficile d'expliquer tout cela via texte GRAND MERCI pour votre aide
 
Re : tirer formule dans une macro

Bonjour PancasPremium et bienvenue 🙂,
difficile d'expliquer tout cela via texte GRAND MERCI pour votre aide
C'est pour cela qu'un fichier exemple est toujours plus explicatif 🙄...
En général, on utilise
Code:
DerLigne = Range("A65535").End(xlUp).Row
pour déterminer la dernière cellule de la colonne A utilisée.
Après, il te suffit de faire une boucle
Code:
For I = 1 To DerLigne
Cells(I,1).FormulaR1C1 = "=SUM..."
Next I
le "=SUM..." est à remplacer par ta formule, pour Cells, c'est d'abord ligne, puis colonne, donc à adapter.
Enfin, pour le bouton, il suffit de mettre
Code:
Call MaMacro
dans le code sur Clic pour que ça se lance.
Bon courage 😎
 
Re : tirer formule dans une macro

Bonjour pancaspremium, JNP 🙂,
Une autre proposition sans boucle et en utilisant une formule de type non R1C1:

Code:
Sub Propager_Formule()
Dim Derligne As Long
Derligne = Sheets("Feuil1").Range("A" & Application.Rows.Count).End(xlUp).Row
Range(Cells(2, 2), Cells(Derligne, 2)).FormulaLocal = "=SI(A2= 5;"[COLOR=red][B]"[/B][/COLOR]Gagné[COLOR=red][B]"[/B][/COLOR]";"[COLOR=red][B]"[/B][/COLOR]"[COLOR=red][B]"[/B][/COLOR])"
End Sub
A noter qu'il faut doubler les doubles cotes ('"), et que JNP a bien raison pour le fichier exemple
Cordialement

EDIT : Code que l'on peut réduire à
Code:
 Sub Propager_Formule()
Range("B2:B" & Sheets("Feuil1").Range("A" & Application.Rows.Count).End(xlUp).Row).FormulaLocal = "=SI(A2= 5;""Gagné"";"""")"
End Sub

EDIT2 IL existe un code donné par Tototiti2008 🙂 ici Si la fonction existe en B2.
Code:
Sub Propager_Formule_Tototiti()
Range("B2").AutoFill Range("B2:B" & Range("A65536").End(xlUp).Row)
End Sub
 

Pièces jointes

Dernière édition:
Re: Re : tirer formule dans une macro

hello
j'essaie de faire marcher la macro insérée comme annexe Test.
Le but est que les formules contenues de L2 à U2 soient tirées vers le bas en fonction des lignes contenues de A à K (dans ce cas 10 lignes mais qui changent continuellement).
Qui peux m'aider à corriger la formule mise en jaune

grand merci d'avance
dcp
 

Pièces jointes

- 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

Discussions similaires

  • Question Question
Microsoft 365 Bug sur une macro
Réponses
6
Affichages
432
Retour