J'ai une feuille de calcul que je reçois régulièrement avec un grand nombre de cellules contenant des noms. Certaines cellules ont un nom complet, y compris une initiale avec une période.Caractère générique dans la chaîne
Par exemple:
Springer, Jerry A.
Chaque maintenant et puis si la feuille que je reçois aura les éléments suivants:
Springer, Jerry.
Je dois me débarrasser de ces initiales du milieu, mais aussi vérifier que je viens de supprimer le "." si c'est là.
Pardonnez-moi mon manque de logique propre, mais je le sous-ca ca suivant:
Sub DeleteMiddleI()
Dim nr1, nr2 As Range
Dim col As Integer
col = 1
Set nr1 = Cells(65536, col).End(xlUp)
Set nr2 = Cells(col, 1)
Do While nr2 <> nr1
'Check to be sure the cell isn't empty
If Len(nr2) <> 0 Then
'Check to see if the last character is a "."
If Right$(nr2, 1) = "." Then
'Check and be sure there is a character before the "."
If InStr(1, nr2.Text, "[A-Z].") > 0 Then '<<<<<<CODE BREAKAGE
nr2 = Left$(nr2, Len(nr2) - 3)
End If
End If
End If
col = col + 1
Set nr2 = Cells(col, 1)
Loop
End Sub
Il brise le
Si InStr (1, nr2.Text, " [AZ]. ") 0 Puis
Je me sens stupide ... mais qu'est-ce qui me manque?
vous êtes suggestion de prendre "Springer, Jerry A." et aussi "Springer, Jerry". "Springer, Jerry" est exactement ce que je cherche à accomplir. Je vais tester ce code et voir si je peux le faire fonctionner. Je vous remercie. – JHizzal
Fonctionne comme un charme. Merci Siddharth Rout – JHizzal
Ce qui précède peut être atteint avec une formule aussi bien :) –