IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Rechercher puis remplacer du texte dans une cellule avec formule [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Actuaire
    Inscrit en
    Août 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Actuaire
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 1
    Points : 3
    Points
    3
    Par défaut Rechercher puis remplacer du texte dans une cellule avec formule
    Bonjour à tous,

    Je suis en train d'écrire une macro qui doit traduire un template Excel via un glossaire.
    J'ai pour l'instant réussi à rechercher les cellules textuelles et les remplacer par le texte dans la langue choisie.
    Cependant j'ai aussi des cellules qui sont composées de texte et de cellules nommées, je cherche à isoler le texte, le chercher dans mon glossaire et le remplacer dans la cellule.

    Exemples :
    Cellule de départ ="(En "&Unite&")"
    Cellule attendue ="(In "&Unite&")"

    Cellule de départ ="PPNA cédées "&Annee_ini&" (incluses dans B9b)"
    Cellule attendue ="Ceded UPR "&Annee_ini&" (included in B9b)"

    Mon glossaire se compose de deux colonnes avec tous les textes en français et leur correspondance en anglais sur la même ligne.
    Ma boucle qui fonctionne bien sur les cellules sans formules est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    For Each cellule In Range(Cells(1, 1), Cells(rowmax, colmax))
            If IsEmpty(cellule) = False And cellule.NumberFormat = "General" And cellule.HasFormula = False Then
                Set traduction = Worksheets("Glossaire").Range("Zone_de_Traduction").Find(What:=cellule.Value, LookAt:=xlWhole)
                If Not traduction Is Nothing Then
                    'Texte trouvé
                    rowtrad = traduction.Row
                    cellule.Value = Worksheets("Glossaire").Cells(rowtrad, coltrad).Value
                Else
                    'Texte non trouvé
                    tableauAjout(UBound(tableauAjout)) = cellule.Value
                    ReDim Preserve tableauAjout(UBound(tableauAjout) + 1)
                End If
            End If
    Next cellule
    Je pense qu'en utilisant la fonction Find avec LookAt:=xlPart je pourrais trouver la ligne correspondante dans mon glossaire, mais je ne vois pas comment retourner dans ma cellule de départ et ne changer que le texte. Il faut surement retrouver la position du texte dans la formule pour pouvoir ensuite le remplacer, mais vous aurez surement d'autres idées (j'espère..) !

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 389
    Points : 23 875
    Points
    23 875
    Par défaut
    Bonjour.

    Je ferai quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    dim T() as variant
    t=split(TaCellule.Formula, "&") 'Découpe la formule en morceaux sur les &
     
    dim it as variant:for each it in t
       'ici du code pour faire la substitution sur le morceau de formule
       it=....
    next it
     
    TaCellule.Formula=join(t(), "&") 'Reconstitue la formule à partir des morceaux.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/04/2018, 13h01
  2. Réponses: 2
    Dernier message: 27/08/2015, 16h04
  3. [XL-2007] Rechercher et remplacer du texte dans word avec une macro excel
    Par littlepower dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2015, 08h59
  4. Réponses: 3
    Dernier message: 10/01/2012, 11h04
  5. Remplacer un texte dans une cellule Excel à partir d'un point donné
    Par tonyC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2006, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo