Menu

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

Messages postés
15
Date d'inscription
lundi 17 décembre 2018
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 ;)
Afficher la suite 

Votre réponse

2 réponses

Messages postés
16851
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
19 février 2019
5034
0
Merci
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...
Thebibi
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
Dernière intervention
21 décembre 2018
-
Bonjour Mike,

Merci pour ta réponse :)
Commenter la réponse de Mike-31
Messages postés
14069
Date d'inscription
dimanche 25 novembre 2007
Dernière intervention
18 février 2019
1302
0
Merci
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
Thebibi
Messages postés
15
Date d'inscription
lundi 17 décembre 2018
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.
Commenter la réponse de f894009