[Excel Macro] Remplacer un caractère

Résolu
Mok -  
 Mok -
Bonjour,

J'ai une suite de cellule ( ex: B2 à B100 )
Chaque cellule comprend une suite de caractère de type "01 23 45 67 89 - 67 89"

1/ Je souhaiterais remplacer le "-" par un "/"

2/ Je souhaiterais rajouter un "-" entre 67 et 89 et aussi un "espace"

Le résultat devrait être le suivant "01 23 45 67 89 / 67 - 89"

J'ai déjà trouvé commence mettre les dernier nombre en gras avec :
Feuil1.Range("B2:B100").Characters(Start:=(xx, Length:=yy).Font.FontStyle = "Gras"

xx = numéro du caractère où commence le gras
yy = numéro du caractère où s'arrête le gras

D'avance merci de votre aide !

2 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour
    si les cellules sont bien toujours du même type, ceci devrait convenir

    Const lideb = 2 
    Const co = 2 
    Dim lifin As Long, li As Long 
    Dim t As String 
    lifin = Cells(65536, co).End(xlUp).Row 
    For li = lideb To lifin 
      t = Cells(li, co) 
      t = Replace(t, "-", "/") 
      t = Left(t, Len(t) - 3) & " - " & Right(t, 2) 
      Cells(li, co).Value = t 
      Cells(li, co).Characters(Start:=Len(t) - 7, Length:=7).Font.FontStyle = "Gras" 
    Next li

    bonne suite
    2
    1. Mok
       
      Bonjour ccm81

      Merci d'avoir pris le temps de creuser ma question :)

      j'abuses surement de ta gentillesse, mais si tu repasses ici, pourrais tu m'expliquer les lignes, ce que ca veut dire ?

      Merci à toi :)
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    re

    ' première ligne à traiter  
    Const lideb = 2   
    ' colonne à traiter  
    Const co = 2   
    Dim lifin As Long, li As Long   
    Dim t As String   
    ' dernière ligne non vide de la colonne co  
    lifin = Cells(65536, co).End(xlUp).Row   
    For li = lideb To lifin   
      ' on récupère le contenu de la cellule (li,co)  
      t = Cells(li, co)   
      ' on remplace dans t le "-" par "/"  
      t = Replace(t, "-", "/")   
      ' Lent(t) est le nombre de caractères de t  
      ' Left(t,Len(t)-3) > les Len(t)-3 caractères de gauche de t  
      ' Right(t,2) > les 2 derniers caractères de t  
      ' on concatene tout ça > & 
      t = Left(t, Len(t) - 3) & " - " & Right(t, 2)   
      Cells(li, co).Value = t   
      ' mise en gras des 7 deniers caractères de t  
      Cells(li, co).Characters(Start:=Len(t) - 7, Length:=7).Font.FontStyle = "Gras"   
    Next li

    bonne suite
    1
    1. Mok
       
      Merci beaucoup pour ton explication !

      bonne continuation :)
      Mok
      0