1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

Changement de caractères

Discussion dans 'Forum Excel' démarrée par maval, 21 Novembre 2018.

  1. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour,

    Dans la colonne "B5" j'ai des noms de départements..... écris normalement "Puy-De-Dôme" .
    Je cherche un code ou une formule pour me recopier dans la colonne "C" "puy_de_dome"

    C'est à dire sans majuscule, sans accent et un tiret bas entre les mots

    Je joint un fichier exemple

    Je vous remercie d'avance

    Max
     

    Pièces jointes:

  2. Chargement...

    Discussions similaires - Changement caractères Forum Date
    changement de caractères selon certaines conditions Forum Excel 30 Novembre 2009
    changement de mise en forme et macro Forum Excel Hier à 21:03
    Copier Coller un fichier avec changement de nom Forum Excel 5 Décembre 2018
    XL 2016 changement color police dans la cellule Forum Excel 20 Novembre 2018
    XL 2013 Sauvegarde données avec changement de date Forum Excel 14 Novembre 2018

  3. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    15313
    "J'aime" reçus :
    575
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Bonjour à tous

    Un essai
     

    Pièces jointes:

  4. chris

    chris XLDnaute Barbatruc

    Inscrit depuis le :
    21 Février 2005
    Messages :
    11206
    "J'aime" reçus :
    609
    Habite à:
    près de St Quentin en Yvelines/ Excel 2010 à 2019
    Utilise:
    Excel 2010 (PC)
    Bonjour

    Code (Text):
    =MINUSCULE(SUBSTITUE(B5;"-";"_"))
    Edit : Bise à pierrejean plus rapide ;)
     
  5. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour PierreJean

    Je vous remercie juste un petit détail il y à des noms avec des apostrophes tel que
    "Bourbon-L'Archambault" pourrait-on faire en sorte que l'apostrophe se transforme en tiret bas
    de cette façon "bourbon_L_archambault"
    Merci et bonne journée

    Max
     
  6. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    15313
    "J'aime" reçus :
    575
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re

    Comme ceci peut-etre
     

    Pièces jointes:

    zebanx aime votre message.
  7. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Re,

    Excellent, je vous remercie et vous souhaite une bonne journée

    Max
     
  8. chris

    chris XLDnaute Barbatruc

    Inscrit depuis le :
    21 Février 2005
    Messages :
    11206
    "J'aime" reçus :
    609
    Habite à:
    près de St Quentin en Yvelines/ Excel 2010 à 2019
    Utilise:
    Excel 2010 (PC)
    Bonjour

    Quand on fait du multipost, ce dont tu es coutumier Maval, il est bien de le signaler mais surtout, il est impératif d'avoir au moins la politesse de revenir clôturer ces divers posts...
     
  9. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour

    Suite au code de PierreJean que je salut et remercie j'ai un petit souci lors que j'ai la colonne qui a environ 400 noms je n'est plus de tiret au nom composé

    Je joint un fichier exemple

    Merci d'avance
    Max
     

    Pièces jointes:

  10. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    25765
    "J'aime" reçus :
    2191
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonjour maval, Pierre, chris,
    Code (Text):
    Sub Epurer()
    Dim x$, y$, i%
    x = " -'ABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåòóôõöøèéêëìíîïùúûüÿñç"
    y = "___abcdefghijklmnopqrstuvwxyzaaaaaaooooooeeeeiiiiuuuuync"
    Application.ScreenUpdating = False
    [D3].CurrentRegion.ClearContents 'RAZ
    [B3].CurrentRegion.Copy [D3]
    With [D3].CurrentRegion
        .Replace """*", """", xlPart 'si l'on veut conserver le guillemet final
        '.Replace """*", "", xlPart 'si l'on veut retirer le guillemet final
        For i = 1 To Len(x)
            .Replace Mid(x, i, 1), Mid(y, i, 1)
        Next
        .Cells(1) = "Arrivé"
    End With
    End Sub
    On peut choisir de conserver le guillemet final (qui est suivi d'espaces) ou de le supprimer.

    A+
     
    arthour973 aime votre message.
  11. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    15313
    "J'aime" reçus :
    575
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re
    Salut Gerard

    dernière version
     

    Pièces jointes:

  12. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Salut PierreJean

    Pourquoi les noms son suivie ______________

    Max
     
  13. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    25765
    "J'aime" reçus :
    2191
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonsoir maval,

    Visiblement vous n'avez pas cherché à comprendre ce que j'ai dit au post #9 sur les guillemets.

    Avec la solution de pierrejean si vous ne voulez pas de tirets après les guillemets :

    => sélectionnez la colonne B => touches Ctrl+H => Rechercher : "* Remplacer par : "

    A+
     
  14. pierrejean

    pierrejean XLDnaute Barbatruc

    Inscrit depuis le :
    19 Janvier 2006
    Messages :
    15313
    "J'aime" reçus :
    575
    Habite à:
    69400 LIMAS
    Utilise:
    Excel 2010 (PC)
    Re
    Cela devrait aller mieux
     

    Pièces jointes:

  15. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour PierreJean

    Oui cela vas beaucoup mieux.
    J'ai essayé de modifier pour enlever les guillemets qui se trouve en fin de mots en faisant comme ceci
    Code (Text):
    Function minus(cellule)
    x = Split(cellule, "-")
    For n = LBound(x) To UBound(x)
      x(n) = LCase(x(n))
      x(n) = SansAccent(x(n))
      x(n) = Replace(x(n), "'", "_")
      x(n) = Replace(x(n), """, " ")
    Next
    minus = Trim(Join(x))
    minus = Replace(minus, " ", "_")
    minus = Replace(minus, """, " ")
    End Function
    Function SansAccent(chaine)
    codeA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
    codeB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
    temp = chaine
    For i = 1 To Len(temp)
    p = InStr(codeA, Mid(temp, i, 1))
    If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
    Next
    SansAccent = temp
    End Function
    on dirai que sa ne fonctionne ?

    Merci .
    Max
     
    Dernière édition: 27 Novembre 2018
  16. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour,

    Suite au code qui à était fais par PierreJean que je salut et remercie j'essaye de modifier sans succès. Je m'explique dans ma colonne je me retrouve par moment avec des noms composé et au lieu d'avoir des apostrophes comme Couat d'Aude j'ai Couat d_x27_Aude et j'aimerai remplacé le "_x27_" par une apostrophe normale, donc j'ai rajouter au code ceci:
    Code (Text):
    Function minus(cellule)
    x = Split(cellule, "-")

    For n = LBound(x) To UBound(x)
    x(n) = LCase(x(n))
    x(n) = SansAccent(x(n))
    x(n) = Replace(x(n), "'", "_")
    x(n) = Replace(x(n), """", " ")
    x(n) = Replace(x(n), "_x27_", "'")
    Next
    minus = Trim(Join(x))
    minus = Replace(minus, " ", "_")
    minus = Replace(minus, """", " ")
    minus = Replace(minus, "_x27_", "'")
    End Function
    Function SansAccent(chaine)
    codeA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
    codeB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
    temp = chaine
    For i = 1 To Len(temp)
    p = InStr(codeA, Mid(temp, i, 1))
    If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
    Next
    SansAccent = temp
    End Function

    Mais sa ne fonctionne pas?

    Je vous remercie d'avance

    max
     
  17. job75

    job75 XLDnaute Barbatruc

    Inscrit depuis le :
    15 Mai 2008
    Messages :
    25765
    "J'aime" reçus :
    2191
    Sexe :
    Masculin
    Habite à:
    Paris
    Utilise:
    Excel 2013 (PC)
    Bonjour maval, le forum,

    Je ne comprends pas que pierrejean utilise la fonction Split, elle ne sert à rien ici :
    Code (Text):
    Function minus(cellule) As String
    minus = LCase(cellule)
    minus = Trim(Replace(minus, """", ""))
    minus = Replace(minus, "'", "_")
    minus = Replace(minus, "_x27_", "'")
    minus = Replace(minus, " ", "_")
    minus = SansAccent(minus)
    End Function

    Function SansAccent(chaine As String)
    Dim codeA$, codeB$, i%, p%
    codeA = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
    codeB = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
    For i = 1 To Len(chaine)
        p = InStr(codeA, Mid(chaine, i, 1))
        If p Then Mid(chaine, i, 1) = Mid(codeB, p, 1)
    Next
    SansAccent = chaine
    End Function
    A+
     
  18. maval

    maval XLDnaute Barbatruc

    Inscrit depuis le :
    11 Mai 2012
    Messages :
    2059
    "J'aime" reçus :
    6
    Bonjour Job

    Oui excuse moi de ne pas avoir répondu.
    C'est Nickel
    Je vous remercie
     

Partager cette page