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 :

Remplacer un texte dans une cellule Excel à partir d'un point donné


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut Remplacer un texte dans une cellule Excel à partir d'un point donné
    Bonjour,

    J'aimerais qu'à partir du 47 caractères depuis la gauche dans une cellule saisie selon un critère précis (la présence de la string "Titr" ), le texte soit remplacé par trois petits points entre crochets carrés [...]

    J'ai écrit cela ainsi:

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Sub Titre() 
     
        On Error Resume Next 
     
        Dim val 
        Dim c 
     
        For Each c In Range("A1:A300" ) 
       'Trouve la valeur Titr  
       Cells.Find(What:="Titr", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ 
            :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ 
            False).Activate 
     
       val = Left(ActiveCell, 4) 
     
       If val = "Titr" Then 
       ActiveCell.Select 
     
       'Mise en gras du mot Titre    
       With Selection.Characters(Start:=1, Length:=7).Font 
            .FontStyle = "Gras" 
       End With 
     
       'Pour l'instant, c'est libellé ainsi, ce qui supprime simplement les derniers caractères, mais c'est là qu'il faudrait  
       'dire "remplace depuis le carctère 47 par [...] 
       With Selection.Characters(Start:=47, Length:=2000).Delete 
       End With 
     
       End If 
       Next 
     
       End Sub
    Merci d'avance pour toute réponse.
    Bonne fin de journée.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et les caractéres qui suivent le 47 tu en fait Quoi ??
    sinon tu as les fonctions de chaines pour cela ..

    left
    right....
    Mid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell = Left(ActiveCell,47) & "[...]"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    Bonsoir,
    Merci pour la prompte réponse. J'aimerais qu'il se passe la chose suivante:

    Sélectionner les cellules qui contiennent la string "Titr"
    Mettre en gras la string "Titre :" (ce sont les 7 premiers caractères)
    Depuis le caractères 47, sélectionner toute la fin du texte et le remplacer par "[...]"

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    Je viens de tester le code en le mettant là:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Mise en gras du mot Titre    
       With Selection.Characters(Start:=1, Length:=7).Font 
            .FontStyle = "Gras" 
       End With 
       ActiveCell = Left(ActiveCell,47) & "[...]"
    L'effet est bien celui escompté! Merci beaucoup. Seul petit effet indésirable, tout est en gras dans la cellule, mais je suis sûr qu'en cherchant un peu, je parviendrai à le placer au bon endroit...
    Merci encore, et bonne soirée.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    oui en changeant l'ordre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ActiveCell.Characters.Font.Bold = False
     ActiveCell = Left(ActiveCell, 47) & "[...]"
     With ActiveCell.Characters(Start:=1, Length:=7).Font
            .FontStyle = "Gras"
       End With

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 40
    Points : 22
    Points
    22
    Par défaut
    Grand merci pour cette "final touch"!!!

Discussions similaires

  1. [XL-2010] Insérer une forme géométrique avec texte dans une cellule excel
    Par stephJP dans le forum Excel
    Réponses: 2
    Dernier message: 23/05/2014, 09h31
  2. Réponses: 1
    Dernier message: 25/03/2013, 08h39
  3. [Excel] Centrer texte dans une cellule
    Par bého32 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 22/07/2009, 10h24
  4. Réponses: 3
    Dernier message: 26/01/2009, 20h31
  5. Réponses: 6
    Dernier message: 14/06/2007, 12h13

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