Regarde le code commenté et dis-moi ce que tu ne comprends pas.
Sub Test()
Dim WsS As Worksheet, WsC As Worksheet
Dim Cel As Range
Dim Pays
Dim LigneC As Long
Dim K As Integer
'On définit la feuille Source
Set WsS = Worksheets("Feuil1")
'On définit la feuille Cible
Set WsC = Worksheets("Feuil2")
'On définit le numéro de la première ligne cible
LigneC = 2
'On balaye chaque cellule de la colonne A de la feuille source
For Each Cel In WsS.Range("A2:A" & WsS.Range("A" & Rows.Count).End(xlUp).Row)
'On scinde le texte de cette cellule afin d'isoler chacun des pays qu'il contient.
'On obtient ainsi le tableau "Pays" qui contient autant d'éléments que de noms de pays dans le texte.
Pays = Split(Cel, ";")
'On balaye tous les éleéments du tableau
For K = 0 To UBound(Pays)
'On copie le nom du pays
WsC.Range("A" & LigneC) = Pays(K)
'On copie le prénom
WsC.Range("B" & LigneC) = Cel.Offset(0, 1)
'On copie le nom
WsC.Range("C" & LigneC) = Cel.Offset(0, 2)
'On incrémente le numéro de la ligne cible
LigneC = LigneC + 1
Next K
Next Cel
WsC.Select
Set WsS = Nothing: Set WsC = Nothing
End Sub
A+