Remplacement d'une formule dans une colonne, mais dans des cellules non contigues

Michou9

XLDnaute Occasionnel
Bonjour

J’ai un tableau relativement long, de ce fait j’ai beaucoup de formules, mais qui ne sont pas contigües.
Problème quand je veux modifier une formule et que je veux remplacer toutes les mêmes formules correspondantes dans une même colonne, c’est la galère !!

Est-ce qu’il est possible à l’aide d’une macro d’effectuer cette recopie.

Comme cela peut se faire sur n’importe quelle colonne, il faudrait que je puisse après le lancement de la macro, indiquer en 1er, la colonne souhaitée, puis en 2 la cellule qui doit être recopiée et enfin en 3 cliquer sur l’une des cellules où doit s’effectuer la recopie.

Merci
 

Pièces jointes

  • Remplacement formule.xls
    22 KB · Affichages: 69
  • Remplacement formule.xls
    22 KB · Affichages: 69
  • Remplacement formule.xls
    22 KB · Affichages: 71
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour

Une possibilité en pièce jointe. Cf. la formule en F2 et la définition du nom couleur=LIRE.CELLULE(63;$E2).

A chaque fois que tu veux faire une modification, tu l'écris au bon endroit dans la formule en F2. Tu copies F2, et tu fait --> coller-->formules (pour ne pas coller en même temps le fond jaune).

@ plus

P.S : Bien sûr, cela ne fonctionne que si dans ton fichier réel, il y a des cellules jaunes en colonne E, et rien dans certaines cellules de la colonne B.
 

Pièces jointes

  • Remplacement formule.xls
    24.5 KB · Affichages: 56
  • Remplacement formule.xls
    24.5 KB · Affichages: 64
  • Remplacement formule.xls
    24.5 KB · Affichages: 61
Dernière édition:

Michou9

XLDnaute Occasionnel
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour

Merci pour ta proposition, c’est en effet une bonne idée

Mais cela ne va pas me convenir pour plusieurs raisons :

1) J’ai bien des couleurs dans mon tableau, mais elles ne sont pas gérées horizontalement.
Si j’ai mis des bandes jaunes dans mon exemple, c’était pour qu’elles soient bien visibles et faciliter la compréhension.

2) La variété des formules ne se limitent pas deux, mais à plus d’une vingtaine par colonne.

3) De plus ces formules n’ont rien à voir avec l’extrême simplicité de ceux que j’ai mis en exemple (avec de plus déjà beaucoup de conditions).

C’est pour cela que je parlais de macro, car c’est la seule solution, mis à part la solution manuelle bien sûr.
 

CISCO

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour

Je me doutais bien que c'était trop simple !

J'ai espéré trouver une solution avec la fonction XL4 EVALUER, mais je n'y arrive pas (cela ne semble fonctionner qu'avec des opérateurs mathématiques, pas avec des fonctions de recherche, de texte..., du style INDIRECT...).

Aurais tu deux ou trois exemples de formule utilisée dans ton fichier, histoire de faire deux ou trois tests ?

@ plus
 
Dernière édition:

Michou9

XLDnaute Occasionnel
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Re,

Merci, ce n’est pas grave
C’est déjà bien d’avoir pensé à cette idée.

Je vais continuer à chercher pour une macro, c’est ce qui me semble le plus indiqué et en plus cela pourra me servir pour d’autre tableau.

Se serait étonnant que quelqu’un n’ai pas déjà réalisé sur le Forum une macro dans ce sens :confused:
 

CISCO

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonsoir

Bonjour, salut les autres,

Et nommer les formules (menu Insertion - Nom - Définir) ?
En cas de modification, il suffit de le faire à un seul endroit.

Si tu écris la formule dans la fenêtre définissant le nom, il te faudra réouvrir à chaque fois cette fenêtre. Pas très pratique si il y a beaucoup de formules.

Si tu écris la formule dans une cellule, puis que tu donnes un nom au contenu de cette formule, tu n'obtiendras pas automatiquement les changements de ligne, de colonne... J'ai essayé en passant par EVALUER, mais sans résultat vraiment polyvalent.

@ plus
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour Michou9, le fil, le forum,

Je n'avais pas vu ce fil :)

Voyez le fichier joint et cette macro :

Code:
Sub ModifierFormule()
If Intersect(ActiveCell, [A:F]) Is Nothing Then Exit Sub 'à adapter
If Not ActiveCell.HasFormula Then _
  MsgBox "La cellule active doit contenir une formule...": Exit Sub
Dim FL$, F1$, f$, F2$, plage As Range, cel As Range
FL = ActiveCell.FormulaLocal
F1 = ActiveCell.FormulaR1C1
1 f = InputBox("Formule à modifier :", "Formule", FL)
If f = "" Then Exit Sub
On Error Resume Next
ActiveCell = f 'teste la formule
If Err Then GoTo 1
On Error GoTo 0
F2 = ActiveCell.FormulaR1C1
ActiveCell = FL
Application.ScreenUpdating = False
'---copie du tableau sur la droite (facultatif)---
[A:F].Copy [H1]: [H1:M1].Clear: [N:IV].Clear 'à adapter
ActiveCell.Offset(, 7).Select '7 à adapter
'---détermination des cellules à modifier---
Set plage = ActiveCell
For Each cel In ActiveCell.EntireColumn.SpecialCells(xlCellTypeFormulas)
  If cel.FormulaR1C1 = F1 Then Set plage = Union(plage, cel)
Next
'---modification des formules de la plage---
plage.FormulaR1C1 = F2
End Sub
La restitution se fait à droite mais on peut la faire sur place en supprimant le code facultatif.

Edit : j'ai ajouté au début, par sécurité :

Code:
If Intersect(ActiveCell, [A:F]) Is Nothing Then Exit Sub 'à adapter
A+
 

Pièces jointes

  • Remplacement formule(1).xls
    55 KB · Affichages: 53
  • Remplacement formule(1).xls
    55 KB · Affichages: 59
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour à tous, bonjour Job75

Pas mal du tout, Job75. Après, ce n'est plus qu'une question d'ergonomie, de présentation. A Michou9 de nous dire si cela lui convient.

Au passage, je vais essayer de comprendre comment fonctionne cette macro.

@ plus
 

job75

XLDnaute Barbatruc
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour CISCO,

Après, ce n'est plus qu'une question d'ergonomie, de présentation.

Oui, et si l'on préfère le nouveau tableau vers le bas c'est juste un peu plus compliqué :

Code:
Sub ModifierFormule()
If Not ActiveCell.HasFormula Then _
  MsgBox "La cellule active doit contenir une formule...": Exit Sub
Dim FL$, F1$, f$, F2$, tablo As Range, decal&, plage As Range, cel As Range
FL = ActiveCell.FormulaLocal
F1 = ActiveCell.FormulaR1C1
1 f = InputBox("Formule à modifier :", "Formule", FL)
If f = "" Then Exit Sub
On Error Resume Next
ActiveCell = f 'teste la formule
If Err Then GoTo 1
On Error GoTo 0
F2 = ActiveCell.FormulaR1C1
ActiveCell = FL
Application.ScreenUpdating = False
'---la zone de travail s'appuie sur la colonne A---
Set tablo = Cells(ActiveCell.Row, 1).CurrentRegion.EntireRow
'---copie du tableau vers le bas (facultatif)---
decal = [A65536].End(xlUp).Row + 2 - tablo.Row
tablo.Copy tablo.Offset(decal)
ActiveCell.Offset(decal).Select
Set tablo = tablo.Offset(decal)
'---détermination des cellules à modifier---
Set plage = ActiveCell
For Each cel In Intersect(tablo, ActiveCell.EntireColumn).SpecialCells(xlCellTypeFormulas)
  If cel.FormulaR1C1 = F1 Then Set plage = Union(plage, cel)
Next
'---modification des formules de la plage---
plage.FormulaR1C1 = F2
'---cadrage du nouveau tableau---
Set cel = ActiveCell
Application.Goto tablo, True
cel.Select
End Sub
Voir fichier (2). La 1ère ligne est figée.

A+
 

Pièces jointes

  • Remplacement formule(2).xls
    55 KB · Affichages: 51

Michou9

XLDnaute Occasionnel
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour Cisco, bonjour Job75, bonjour le Forum

Merci Cisco pour ta persévérance et tes efforts
Merci Job75 pour cette macro

Je n’y comptais plus.
A part Cisco, je ne voyais pas vraiment d’engouement pour ma demande

Ce n’est pas du tout que j’étais pressé
Car cela fait déjà longtemps que j’y pensais
Je m’étais essayé à l’écrire, mais sans grand résultat
Je vois d’ailleurs à présent que j’aurai pu chercher encore longtemps

La deuxième solution est très bien
Encore merci à tous les deux
 

Michou9

XLDnaute Occasionnel
Re : Remplacement d'une formule dans une colonne, mais dans des cellules non contigue

Bonjour Hoerwind

Je n’avais pas vu ta réponse
C’est vrai, qu’elle n’est pas bien longue

Mais pourtant, elle est bien efficace

Pour peu que on y pense et de préférence à la réalisation du tableau
Mais même après, si on doit changer souvent de formule

C’est une très bonne alternative
Je viens de le vérifier

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 200
Membres
103 762
dernier inscrit
rouazali