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 :

Modifier un commentaire [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut Modifier un commentaire
    Bonjour,

    Je suis débutante en Excel et j'ai un petit soucis.
    Voila je voudrais modifier le contenu d'un commentaire.
    Par exemple voici mon commentaire de départ :
    Bonjour
    Ceci est un test
    Je voudrais arriver à la fin à :
    Bonjour
    Ce test marche

    En gros je voudrais tester si il y a dans mon commentaire une chaine de caractere X et je voudrais la remplacer par Y sans modifier le reste du commentaire

    Est faisable ?

    Merci d'avance pour votre aide

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Points : 547
    Points
    547
    Par défaut
    Salut,

    Je n'ai pas xl2007 mais sous xl2003 on peut comme ceci:
    Pour un commentaire en Cellule A1 par exemple
    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
    16
    17
    18
    Option Explicit
     
    Sub ModifCommentaire()
        Dim ChaineDepart As String, ChaineFinale As String
     
        ChaineDepart = "Ceci est un test"
        ChaineFinale = "Ce test marche"
     
        With Range("A1")
            If Not .Comment Is Nothing Then
                With .Comment.Shape.DrawingObject
                    If InStr(.Caption, ChaineDepart) <> 0 Then
                        .Caption = Replace(.Caption, ChaineDepart, ChaineFinale)
                    End If
                End With
            End If
        End With
    End Sub
    ++
    Minick

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut
    Merci bcp pout ta réponse
    Ca marche comme je voulais

    Merci

    A++

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Bonjour
    Dans la mesure du possible, on utilise l'enregistreur de macro et on essaye d'adapter le code proposé ; c'est ce que j'ai fait pour te fournir une réponse.

    Ce qui donne (à adapter à tes besoins)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim TxtComm ' variable pour modification du commentaire
        Dim X ' variable pour chaine à rechercher
        Dim Y ' variable pour chaine de remplacement
        X="rechercher"
        Y="Remplacer"
        TxtComm = ActiveCell.Comment.Text 'récupération du commentaire de la cellule active
        TxtComm = Replace(TxtComm, X, Y) ' remplace une chaine X par un chaine Y
        ActiveCell.Comment.Text Text:=TxtComm ' on ré injecte le commentaire dans la callule active
    (on pourrait tout faire en une seule ligne, mais le code serait moins lisible)


    Edit : désolé Minick pour le télescopage
    Frédéric
    Développeur d'Applications Access

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 199
    Points : 75
    Points
    75
    Par défaut
    Petite question le code que tu ma donné marche pour changer une ligne complète mais pas un morceau de texte.
    Effectivement si mon commentaire est "Ceci est un test"
    Et que je veux changer par "Ceci marche"
    Ca ne marche pas
    J'ai mis en chaine de départ "test"
    Et chaine d'arrivé "marche"

    As tu une idée ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Points : 1 282
    Points
    1 282
    Par défaut
    Re
    Si Avec le code que je t'ai donné précédemment, cela donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim TxtComm ' variable pour modification du commentaire
        Dim X ' variable pour chaine à rechercher
        Dim Y ' variable pour chaine de remplacement
        X = "est un test"
        Y = "marche"
        TxtComm = ActiveCell.Comment.Text 'récupération du commentaire de la cellule active
        TxtComm = Replace(TxtComm, X, Y) ' remplace une chaine X par un chaine Y
        ActiveCell.Comment.Text Text:=TxtComm ' on ré injecte le commentaire dans la callule active
    Frédéric
    Développeur d'Applications Access

  7. #7
    Membre régulier Avatar de Gorzyne
    Profil pro
    Collégien
    Inscrit en
    Janvier 2008
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Janvier 2008
    Messages : 329
    Points : 121
    Points
    121
    Par défaut
    cette approche ne conserve pas la mise en forme du texte initial (italique, gras)...
    j'imagine qu'il doit y avoir une solution dynamique peut être un peu plus complexe, qui permettrait de récupérer le formatage pour le conserver

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

Discussions similaires

  1. Modifier dimension d'un commentaire dans EXCEL depuis access
    Par petitours dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/11/2007, 09h08
  2. Modifier propriéte d'un fichier (commentaire, etc.)
    Par Hypollite76 dans le forum Delphi
    Réponses: 7
    Dernier message: 21/02/2007, 18h33
  3. Modifier un commentaire sur une table ?
    Par schniouf dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 15/02/2007, 14h20
  4. Réponses: 5
    Dernier message: 02/01/2007, 15h19
  5. [VBA-E]modifier les attributs d'un commentaire dans une cellule
    Par Olivier vb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2004, 10h26

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