L'indice n'appartient pas à la selection [Résolu/Fermé]

Signaler
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
Statut
Membre
Dernière intervention
21 décembre 2018
-
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
Statut
Membre
Dernière intervention
21 décembre 2018
-
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

Messages postés
17137
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
7 juillet 2020
4 122
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

A+
Mike-31

Je suis responsable de ce que je dis, pas de ce que tu comprends...
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
Statut
Membre
Dernière intervention
21 décembre 2018

Bonjour Mike,

Merci pour ta réponse :)
Messages postés
15238
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
29 juin 2020
1 306
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
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
Statut
Membre
Dernière intervention
21 décembre 2018

Bonjour F894009,

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

Bonne journée.