L'indice n'appartient pas à la selection

Résolu/Fermé
Thebibi Messages postés 15 Date d'inscription lundi 17 décembre 2018 Statut Membre Dernière intervention 21 décembre 2018 - Modifié le 20 déc. 2018 à 16:05
Thebibi Messages postés 15 Date d'inscription lundi 17 décembre 2018 Statut Membre Dernière intervention 21 décembre 2018 - 21 déc. 2018 à 08:39
Bonjour,

Ma macro me marque le message d'erreur suivant :

Erreur d'exécution "9" :
L'indice n'appartient pas à la sélection

Je cherche mais je ne trouve pas pourquoi :/

ma macro sert a séparer le prénom et nom dans une cellule unique.

Les conditions sont simples, si il y a un espace on les séparent en deux et d'un coter le prénom et de l'autre le nom



Voici le code :

Sub Decompose()
Dim Tourne As Long
Dim FinLigne As Long
Dim Phrase As String
Dim Nom As String
Dim Prenom As String

FinLigne = Range("A10").End(xlUp).Row
For Tourne = 2 To FinLigne
Phrase = Cells(A & Tourne)
Nom = Split(Phrase, " ")(0)
Prenom = Split(Phrase, " ")(1)
Range("B" & Tourne) = Nom
Range("C" & Tourne) = Prenom
Next Tourne
End Sub


Et la ligne qui apparemment pose problème avec le débogage est celle ci:

Nom = Split(Phrase, " ")(0)


Merci de votre aide ;)

2 réponses

Mike-31 Messages postés 18380 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 18 mars 2025 5 125
Modifié le 20 déc. 2018 à 16:56
Bonjour,

regarde comme cela

Sub Decompose()
Dim Tourne As Long
Dim FinLigne As Long
Dim Phrase As String
FinLigne = Range("A100").End(xlUp).Row
For Tourne = 2 To FinLigne
Phrase = Cells(Tourne, "A")
I = InStr(Phrase, " ")
If I = 0 Then
Cells(Tourne, "B") = Cells(Tourne, "A")
Else
Cells(Tourne, "A") = Left(Phrase, I - 1)
Cells(Tourne, "B") = Mid(Phrase, I + 1)
End If
Next Tourne
End Sub

0
Thebibi Messages postés 15 Date d'inscription lundi 17 décembre 2018 Statut Membre Dernière intervention 21 décembre 2018
21 déc. 2018 à 08:38
Bonjour Mike,

Merci pour ta réponse :)
0
f894009 Messages postés 17263 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 mars 2025 1 713
20 déc. 2018 à 16:47
Bonjour,

Sub Decompose()
    Dim Tourne As Long
    Dim derlig As Long
    Dim TNP

    derlig = Range("A" & Rows.Count).End(xlUp).Row
    For Tourne = 2 To derlig
        TNP = Split(Range("A" & Tourne), " ")
        Range("B" & Tourne) = TNP(0)
        Range("C" & Tourne) = TNP(1)
    Next Tourne
End Sub
0
Thebibi Messages postés 15 Date d'inscription lundi 17 décembre 2018 Statut Membre Dernière intervention 21 décembre 2018
21 déc. 2018 à 08:39
Bonjour F894009,

Merci pour ta réponse cela fonctionne parfaitement, et en plus encore plus optimisé !

Bonne journée.
0