Rechercher remplacer dans excel

Résolu
crazy_palaz -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

J'ai besoin d'un petit coup de pouce sur excel car après avoir parcouru beaucoup de forum sur le net, je n'ai pas encore trouvé la formule magique dans excel pour faire ce que je veux.

Je cherche en gros à utiliser le principe de fonction dans excel, sans utiliser la forme function dans vba (je veux pouvoir modifier mes fonctions directement dans excel).

J'ai une feuille nommée "parametres" qui en gros contient 2 colonnes : une colonne "nom du paramètre" (pour le décrire) et une colonne "valeur". Toutes les cellules de la colonnes "valeur" ont un nom attribué (au lieu de "B5", j'ai "duree_projet" par exemple).

Une seconde feuille "projet" qui contient des archives de la première feuille "parametre", avec une colonne nom identique, et plusieurs colonnes de valeurs, pour chaque projet. Là aussi, chaque valeur possède un nom, avec la même syntaxe que dans la feuille paramètre mais avec un suffixe, du genre : duree_projet_A pour le projet A.

Une troisième feuille nommée "fonction", avec là aussi 2 colonnes : une de "nom" et une de valeur. Les cellules de la colonne "valeur" contiennent des formules de calculs qui utilisent les nombres entrés dans la première feuille "parametre" du genre "=5+duree_projet/3"

Enfin, j'ai une quatrième feuille, nommée comparaison, qui comporte une colonne "nom" identique à celle de la feuille fonction, mais avec plusieurs colonnes dont les cellules contiennent les valeurs de plusieurs projets différents. Chaque cellule de ces colonnes reprend les formules de la feuille fonction mais avec les paramètres spécifiques à chaque projet, dont les valeurs sont dans la feuille "projet".

J'aimerai que quand je modifie une formule dans la feuille "fonction", elle soit automatiquement modifiée dans la feuille "comparaison" pour chaque projet. J'ai essayé d'utiliser des macros, les fonctions remplacer, substitue mais rien n'y fait, je n'arrive pas à modifier le contenu d'une formule.

J'espère que j'ai été assez clair, pas facile d'expliquer ce qu'on veut !
Merci de votre aide !

5 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    un bout de code qui modifie automatiquement une formule en feuill 2 lorsqu'on modifie une formule en feuille 1
    la formule f récupérée à l'adesse c de la feuille 1, est une chaine de caracteres (type string) que tu peux modifier comme tu veux (dans les limites légales) avant de la recopier dans une cellule de la feuille 2
    ici, j'ai fait simple, f ne change pas et la cellule a la même adresse

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As String, f As String
      If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
        c = Target.Address
        f = Range(c).Formula
        Sheets("Feuil2").Range(c).Formula = f
      End If
    End Sub

    bonne suite
    1
    1. crazy_plaaz
       
      Merci de ta solution ! Je vais étudier ça de près.
      0
    2. crazy_palaz
       
      Euuh avec toute ma bonne volonté, je n'arrive pas à appliquer ce code. Comment fais tu pour dire à excel que tu veux que la macro s'applique à telle cellule de la feuil1 ? Autrement dit, comment lui dire que Target = cellule B2 de la feuil1 ? (je suis nouveau en vba :p)
      0
    3. chossette9 Messages postés 6855 Date d'inscription   Statut Contributeur Dernière intervention   1 313
       
      Dans la ligne
      If Not Intersect(Target, Range("C1:C10")) Is Nothing Then


      Range("C1:C10") indique la plage de cellule qui sera affectée par la macro.

      Du coup, il te faut remplacer cette plage de cellule par celle que tu voudras modifier.

      Cordialement.
      0
    4. ccm81 Messages postés 11033 Statut Membre 2 434
       
      re
      pour compléter les explications de chossette9

      If Not Intersect(Target, Range("C1:C10")) Is Nothing Then
      se lit
      si Target (la cellule qui vient d'être modifiée) appartient à la plage C1:C10 alors ....
      avec ceci, si une cellule de la plage C1:C10 change, alors ....
      bonne suite
      0
    5. crazy_palaz
       
      Coucou, juste pour vous annoncer que j'ai terminé la macro que je voulais faire en utilisant le code de ccm81 qui marche impec !

      Merci à vous tous ;)
      0
  2. xkristi Messages postés 4336 Date d'inscription   Statut Membre Dernière intervention   564
     
    Salut !

    Dans excel tu selectionnes tout ton tableau ,
    ensuite tu fais édition atteindre formules
    donc toutes tes formules sont sélectionnées
    et ensuite remplacer le nom d'une feuille par une autre
    et remplacer tout .

    C' est tout ce que je vois dans Excel même
    ma version d 'excel est ancienne mais tu dois avoir la même chose dans une version plus récente
    0
  3. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour.

    Quand on définit le nom d'une plage (ou d'une cellule), on a le choix de l'option "Dans le classeur / la feuille ...".

    Quand on duplique une feuille contenant un nom de plage, Excel demande si le même nom peut être utilisé / si la valeur de la plage indiquée doit être utilisée dans la nouvelle feuille ...

    En espérant que ça pourra t'être utile.
    0
    1. crazy_palaz
       
      Je ne savais pas ça, mais en fait, je ne peux pas utiliser l'astuce de la duplication de feuille car j'ai un peu simplifié le problème. Les feuilles "fonction" et "comparaison" sont assez différentes en fait.

      Je pense qu'il n'y a pas d'autre moyen que de passer par une macro.
      0
  4. crazy_palaz
     
    Je pense que je vais simplifier mon problème et vous poser une question plus simple :

    Comment à travers une macro excel, faire pour :

    - rechercher dans le corps d'une formule un ou plusieurs mots situé dans une colonne de cellule

    - les remplacer par d'autres mots issus d'une autre colonne de cellule de même taille
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re
    bien, il ne te reste plus qu'à mettre le pb à Résolu
    bonne fin de journée
    0