1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
| Option Explicit
Sub Macro1()
Dim pl As Long
Dim pc, pc1, pcc, nbp, code As Byte
Dim nom, n As String
'1ère ligne contenant vos données (vous pouvez modifier)
pl = 2
'1ère colonne de données (il s'agit des cellules dans lesquelles
'vous avez séparés tous les mots constituants les nom et prénom (vous pouvez modifier)
pc = 7
'colonne dans laquelle les données concaténées vont être copiées (vou pouvez modifier)
pcc = pc + 8
Debut:
pc1 = pc
nom = ""
nbp = 0
n = Cells(pl, pc1)
If n = "" Then
MsgBox "Traitement terminé.", _
vbOKOnly + vbInformation + vbApplicationModal, "Information"
Exit Sub
End If
Cherche_fin:
n = Cells(pl, pc1)
If n = "" Then
GoTo Nom_pren
Else
code = Asc(Mid(n, 2, 1))
If code >= 65 And code <= 90 Then
nom = nom & n & " "
pc1 = pc1 + 1
Else
nbp = nbp + 1
pc1 = pc1 + 1
End If
GoTo Cherche_fin
End If
Nom_pren:
If nbp > 2 Then
MsgBox "Vérifiez vos données en ligne : " & pl & Chr(10) & Chr(13) _
& "plus de 2 champs trouvés avec des minuscules" & Chr(10) & Chr(13) _
& "il n'est pas prévu que le prénom soit composé de plus de 2 éléments", _
vbOKOnly + vbInformation + vbApplicationModal, "Information"
Exit Sub
End If
If nbp = 0 Then
pl = pl + 1
GoTo Debut
End If
If nbp = 1 Then
n = Cells(pl, pc)
nom = nom & n
Else
n = Cells(pl, pc)
nom = nom & n & "-"
n = Cells(pl, pc + 1)
nom = nom & n
End If
Cells(pl, pcc) = nom
pl = pl + 1
GoTo Debut
End Sub |
Partager