Changement de caractères

maval

XLDnaute Barbatruc
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

  • formules2.xlsm
    9.6 KB · Affichages: 14

maval

XLDnaute Barbatruc
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
 

maval

XLDnaute Barbatruc
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

  • formules2-3.xlsm
    32.5 KB · Affichages: 13

job75

XLDnaute Barbatruc
Bonjour maval, Pierre, chris,
Code:
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+
 

job75

XLDnaute Barbatruc
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+
 

maval

XLDnaute Barbatruc
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:
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:

maval

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 940
Membres
101 845
dernier inscrit
annesof