Pour un projet, j'ai dans un tableau excel, les cellules de C46 à C107 sous cette forme :
texte1 [texte2]
J'ai besoin de mettre le texte2 dans la colonne D (ligne respective) et de juste laisser le texte1 dans la cellule C.
J'ai commencé à faire ça :
Sub Test()
Dim Tableau
Dim i As Integer
For i = 46 To 107
Tableau = Split(Range("C" & i).Value, "[")
Tableau = Split(Tableau(1).Value, "]")
Range("C" & i) = Tableau(0).Value
Next i
End Sub
Mais ça ne fonctionne pas "L'indice n'appartient pas à la sélection".
Pourtant je pense que ce que je veux faire est vraiment simple...
J'imagine que l'erreur est à la ligne 7 ? Par défaut, les tableaux commencent à 1 en VBA donc Tableau(0) n'existe pas.
Mais même en corrigeant ça je pense que ça ne fera pas le résultat attendu.
Est-ce que texte1 et texte2 peuvent contenir des espaces ? Sinon tu fais un split sur le caractère espace " " et tu vires le premier et dernier caractère de la variable qui contient texte2 pour enlever les crochets.
Si il y a des espaces, c'est une bonne idée le split sur le crochet ouvrant, par contre le deuxième split écrase tout ce qu'il y a dans le tableau (donc texte1 va être perdu). Tu n'as pas besoin d'un deuxième split, enlève simplement le dernier carctère de la variable qui contient texte2.
EDIT : et il ne faut pas mettre de .Value pour les tabelaux.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Croyez en vos rêves pour qu'ils se réalisent ;)