Spliter le texte d'une cellule dans deux cellules différentes

Bonjour à tous,

Je débute tout juste en VBA et j'ai besoin de splitter le texte d'une cellule dans deux cellules différentes. J'ai écrit ça commme ça :

Set rng = Range("A3:P1449")

For i = 3 To rng.Rows.Count Step 3
    Cells(i, "A").Value = "Numéro Fiche forum:"
    Cells(i, "A").Font.Bold = True
    Cells(i, "B").Font.Bold = True
    Cells(i, "B").Font.ColorIndex = 3
    Cells(i + 1, "A").Value = "Question:"
    Cells(i + 1, "A").Font.Bold = True
    If Cells(i, "J") <> "" Then
        Cells(i + 1, "B").Value = Cells(i, "J").Value
    Else
        Cells(i + 1, "B").Value = Split(Cells(i + 1, "P").Value, "Réponse")(1)
    End If
    Cells(i + 2, "A").Value = "Réponse:"
    Cells(i + 2, "A").Font.Bold = True
    Cells(i + 2, "B").Value = Split(Cells(i + 1, "P").Value, "Réponse")(2)

Next i

Columns("A:B").WrapText = True
Columns("A:B").HorizontalAlignment = xlLeft
Columns("A:B").VerticalAlignment = xlVAlignCenter

End Sub

Mais j'ai une erreur à la compilation '9' : L'indice n'appartient pas à la sélection.

Pouvez-vous m'aider svp ?

Merci par avance.

Salut,

Tu peux nous indiquer quelle ligne est en erreur ?

Bibu

Oui, la ligne après le else.

La ligne avec la fonction split

De ce que je comprend, tu essaye de mettre le deuxième (et ensuite le troisième) élément du tableau généré par la fonction Split.

Si la fonction Split ne trouve pas de séparateur, alors demander le deuxième indice du tableau est "en dehors de la sélection" vu que le tableau ne contient qu'une seule valeur.

Essaye de mettre une condition sur la longueur du tableau généré par Split avant d'attribuer ta valeur.

Bibu

Bonjour,

Je rejoins la proposition de Bibu, tu peux tester si ta colonne P contient le terme "Réponse" avant de splitter :

If Cells(i + 1, "P") Like "*Réponse*" Then '...

Merci à tous les deux pour vos réponses. J'ai essayé le code ci-dessous mais j'ai la même erreur à la même ligne

Set rng = Range("A3:P1449")

For i = 3 To rng.Rows.Count Step 3
    Cells(i, "A").Value = "Numéro Fiche forum:"
    Cells(i, "A").Font.Bold = True
    Cells(i, "B").Font.Bold = True
    Cells(i, "B").Font.ColorIndex = 3
    Cells(i + 1, "A").Value = "Question:"
    Cells(i + 1, "A").Font.Bold = True
    If Cells(i, "J") <> "" Then
        Cells(i + 1, "B").Value = Cells(i, "J").Value
    Else
        If InStr(1, Cells(i + 1, "P").Value, "Réponse :") <> 0 Then
            Cells(i + 1, "B").Value = Split(Cells(i + 1, "P").Value, "Réponse")(0)
        Else
            Cells(i + 1, "B").Value = "N/A"
        End If
    End If
    Cells(i + 2, "A").Value = "Réponse:"
    Cells(i + 2, "A").Font.Bold = True
    If InStr(1, Cells(i + 1, "P").Value, "Réponse :") <> 0 Then
        Cells(i + 2, "B").Value = Split(Cells(i + 1, "P").Value, "Réponse")(1)
    Else
        Cells(i + 2, "B").Value = "N/A"
    End If
Next i

Columns("A:B").WrapText = True
Columns("A:B").HorizontalAlignment = xlLeft
Columns("A:B").VerticalAlignment = xlVAlignCenter

End Sub

EDIT :

même erreur en utilisant If Cells(i + 1, "P") Like "*Réponse*" Then à la place de InSTR

Merci par avance

Rechercher des sujets similaires à "spliter texte deux differentes"