Oui Patrick assure un max pour penser au Trim, et Eriiiic se fera sûrement un plaisir de te faire le "patch" de sa function pour gérer le +31 (0) 6X XXX XX XX
C'est parfait ! merciJ'ai ajouté tous les pays limitrophes aussi dans les constantes en top de module télephone, à toi de maintenir à jour des deux coté, indicatif et taille synchro dans l'ordre.
Application Trim ? c'est tout le tableau?a bon ?
Regarde Bizarre j'ai prit des valeurs nom prenom d'un fichier clique sur Trim ou caractèresbon je viens de tester avec 10000 lignes chez moi le trim "F:G"complet (donc multi colonne contiguës) est instantané
Option Explicit
'Remplacé par PatrickToulon
Private Const accent As String = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿ ÑñÇç'-"
Private Const noAccent As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuy NnCc "
Sub Accents_Killer()
Dim Cell As Range
Dim Response As Long, rng As Range, Lastrow
Lastrow = ActiveSheet.UsedRange.Rows.Count
Set rng = Selection
If rng.Columns.Count > 1 Then MsgBox "Ne pas seléctionner 2 colonnes à la fois", vbExclamation, "Une Colonne à la fois !": Exit Sub
If rng.Rows.Count >= Rows.Count Then Set rng = rng.Cells(2, 1).Resize(Lastrow)
'>>>Ajout Thierry 20200501
If rng.Rows.Count > 1000 Then
Response = MsgBox("Ca va prendre du temps sur : " & Format(Selection.Rows.Count, "#0,000,000") & " Cellules" & vbCrLf & "Voulez-vous continuer ?", vbOKCancel)
If Response = vbCancel Then Exit Sub
ElseIf rng.Rows.Count <= 1 Then
MsgBox "Vous devez sélectionner une plage pour appliquer cette macro", vbInformation
Exit Sub
End If
'<<<
For Each Cell In rng.Cells
Cell.Value = SansAccents(Cell.Text)
Next Cell
End Sub
' La fonction :
Public Function SansAccents(ByRef S As String) As String
Dim i As Integer
Dim lettre As String * 1
SansAccents = S
For i = 1 To Len(accent)
lettre = Mid$(accent, i, 1)
If InStr(SansAccents, lettre) > 0 Then
SansAccents = Replace(SansAccents, lettre, Mid$(noAccent, i, 1))
End If
Next i
End Function
Ok Nickella seule différence avec avant c'est bien entendu les options mais aussi le fait que tu dois sélectionner tes cellules ou colonnes et c'est mieux ça t’évite d'aller taper dans la colonne mail ou autre
Il continue à me répondrere
voila pour caracteres
tu peux sélectionner une colonne entière ça s'ajuste automatiquement au rows.cout end(xlup)VB:Option Explicit 'Remplacé par PatrickToulon Private Const accent As String = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿ ÑñÇç'-" Private Const noAccent As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuy NnCc " Sub Accents_Killer() Dim Cell As Range Dim Response As Long, rng As Range, Lastrow Lastrow = ActiveSheet.UsedRange.Rows.Count Set rng = Selection If rng.Columns.Count > 1 Then MsgBox "Ne pas seléctionner 2 colonnes à la fois", vbExclamation, "Une Colonne à la fois !": Exit Sub If rng.Rows.Count >= Rows.Count Then Set rng = rng.Cells(2, 1).Resize(Lastrow) '>>>Ajout Thierry 20200501 If rng.Rows.Count > 1000 Then Response = MsgBox("Ca va prendre du temps sur : " & Format(Selection.Rows.Count, "#0,000,000") & " Cellules" & vbCrLf & "Voulez-vous continuer ?", vbOKCancel) If Response = vbCancel Then Exit Sub ElseIf rng.Rows.Count <= 1 Then MsgBox "Vous devez sélectionner une plage pour appliquer cette macro", vbInformation Exit Sub End If '<<< For Each Cell In rng.Cells Cell.Value = SansAccents(Cell.Text) Next Cell End Sub ' La fonction : Public Function SansAccents(ByRef S As String) As String Dim i As Integer Dim lettre As String * 1 SansAccents = S For i = 1 To Len(accent) lettre = Mid$(accent, i, 1) If InStr(SansAccents, lettre) > 0 Then SansAccents = Replace(SansAccents, lettre, Mid$(noAccent, i, 1)) End If Next i End Function
Est tu sur de m'avoir envoyer le bon code pour modifier le module, car je ne vois pas apparaite le xluptu es sur d'avoir changer le code du module ?
Cellule Opheline,what is it ?cellules orphelines