Besoin D'aide Dans Vb Svp

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 !

Etienne2323

XLDnaute Impliqué
Bonjour,
j'ai besoin d'un coup de main dans VB. Je vous explique le problème. J'ai plusieurs cellules qui se trouvent toujours au même endroit (ex cellule B17) sur plusieurs onglets différents. J'ai besoin de créer une macro qui pourra remplacer les formules déjà existente dans ces cellules par autre chose. En fait, j'aurais plutot besoin de rajouter quelque chose à mes formules déjà existentes. Il faut que je rajoute dans toutes mes cellules la fonction arrondi à la formule déjà existente.

Par exemple, à la cellule B17, j'ai cette formule :

=SI(BDLIRE(cumul;$AF17;année6)="s.o.";SI(langue="A";"N/A";"s.o.");(BDLIRE(cumul;$AF17;année5)/BDLIRE(cumul;$AF17;année6)-1)*100)

J'ai besoin d'ajouter une fonction arrondi à cette forumule.

La forme que j'ai besoin d'obtenir serait la suivante :

=ARRONDI(SI(BDLIRE(cumul;$AF17;année6)="s.o.";SI(langue="A";"N/A";"s.o.");(BDLIRE(cumul;$AF17;année5)/BDLIRE(cumul;$AF17;année6)-1)*100);1)


Même si les formules se trouvent aux mêmes cellules sur les onglets différents, toutes les formules sont différentes. C'est pourquoi je ne peux pas utiliser l'outil qui génère les macros pour me donner une piste. Il me donne la formule de ma cellule mais je ne pourrais pas répéter partout puisque ma formule change de cellules en cellules.

Comment arriver à modifier les formules ?


Quelqu'un aurait une idée ? Ça m'aiderait beaucoup !

J'ai environ 800 cellules à modifier. À la main, ça risque d'être très pénible.

Merci à vous tous !

Etienne
 
Re : Besoin D'aide Dans Vb Svp

Bonjour Etienne, Michel🙂

regarde le code ci-dessous, modifie la plage A1 a10 de la feuille active, fonction chez moi sous Excel2003 :

Code:
Sub test()
Dim c As Range
For Each c In Range("A1:A10")
    If c.HasFormula Then c.FormulaLocal = "=ARRONDI(" & Right(c.FormulaLocal, Len(c.FormulaLocal) - 1) & ";1)"
Next c
End Sub

bonne soirée
@+
 
Re : Besoin D'aide Dans Vb Svp

Bonjour Michel est Pierrot93,
un gros merci pour le code. Il fonctionne à merveille pour moi aussi. Je vous présente la version de code que j'avais réussi à élaborer pour faire sensiblement le même travail. Dites-moi ce que vous en pensez !


Sub Test()
For col = 2 To 7
For i = 10 To 32
a = "=round(" & Right(Cells(i, col).Formula, Len(Cells(i, col).Formula) - 1) & ",1)"
Cells(i, col).Formula = a
Next i
Next col

For col2 = 2 To 7
For j = 35 To 45
b = "=round(" & Right(Cells(j, col2).Formula, Len(Cells(j, col2).Formula) - 1) & ",1)"
Cells(j, col2).Formula = b
Next j
Next col2

End Sub

J'avais deux plages de données sur chaque onglet. J'avais donc créé deux petites boubles pour chacun des deux ranges. J'aurais pu ajouter une autre boucle plutot que de séparer le code en deux mais je trouvais que c'étais plus simple à modifier quand les plages changeaient.

En tout cas, merci beaucoup Pierrot pour cette réponse rapide et efficace, c'est très apprécié !

Etienne
 
- 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

Réponses
3
Affichages
388
Réponses
3
Affichages
377
Retour