A voir également:
- [VBA excel] chaine de caractere
- Caractère ascii - Guide
- Liste déroulante excel - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
6 réponses
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
28 mai 2007 à 17:37
28 mai 2007 à 17:37
Salut, tu peux utiliser ce code:
Selection.TextToColumns DataType:=xlDelimited, Space:=True
Bonne continuation !
Selection.TextToColumns DataType:=xlDelimited, Space:=True
Bonne continuation !
Rebonjour :)
Ce code marche plutot bien mais gros soucis : lorsque je l'applique sur ma colonne, il m'efface les colones qui sont a droite de celle ci.
Meme en inserant de nouvelles colones, toutes les autres données sont effacées.
Sinon comment faire pour récuperer uniquement les 2 premiers mots de la cellule?
Merci encore
Ce code marche plutot bien mais gros soucis : lorsque je l'applique sur ma colonne, il m'efface les colones qui sont a droite de celle ci.
Meme en inserant de nouvelles colones, toutes les autres données sont effacées.
Sinon comment faire pour récuperer uniquement les 2 premiers mots de la cellule?
Merci encore
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
1 juin 2007 à 10:07
1 juin 2007 à 10:07
salut,
si tu n'as que le nom et prénom dans ta colonne, ce code devrait suffire, sinon il faudra développer un peu:
For Each Cell In Selection.Cells
Position1 = InStr(1, Cell.Value, " ")
Cell.Offset(0, 1).Value = Right(Cell.Value, Len(Cell.Value) - Position1)
Cell.Value = Left(Cell.Value, Position1 - 1)
Next Cell
Attention, il te faut toujours une colonne de libre à côté de la colonne qui contient les cellules que tu veux séparer, et il faut que tu sélectionnes les cellules à séparer avant d'exécuter la macro...
Si tu trouves ça trop contraignant pour une quelconque raison, tu peux toujours remplacer Selection par une plage fixe Range(...)
Tiens-moi au courant... ;-)
si tu n'as que le nom et prénom dans ta colonne, ce code devrait suffire, sinon il faudra développer un peu:
For Each Cell In Selection.Cells
Position1 = InStr(1, Cell.Value, " ")
Cell.Offset(0, 1).Value = Right(Cell.Value, Len(Cell.Value) - Position1)
Cell.Value = Left(Cell.Value, Position1 - 1)
Next Cell
Attention, il te faut toujours une colonne de libre à côté de la colonne qui contient les cellules que tu veux séparer, et il faut que tu sélectionnes les cellules à séparer avant d'exécuter la macro...
Si tu trouves ça trop contraignant pour une quelconque raison, tu peux toujours remplacer Selection par une plage fixe Range(...)
Tiens-moi au courant... ;-)
Merci
Je vais tester voir ce que sa donne. Pour la colones a rajouter je savais, mais c'est dans ma colone il y avait trop d'espace (j'ai utilisé une fonction pour supprimé les espaces inutiles).
Sinon c'est bien en selectionnant la colone que je veux separer.
Je vais voir ce que je peux faire pour arrangé ton code. C'est un peu la merde parceque ma colone n'a pas des "données" parfaites; ya des caracteres qui sont la mais qui ne devraient pas (tableau recuperé et mal renseigné)
En tout cas merci bien
Je vais tester voir ce que sa donne. Pour la colones a rajouter je savais, mais c'est dans ma colone il y avait trop d'espace (j'ai utilisé une fonction pour supprimé les espaces inutiles).
Sinon c'est bien en selectionnant la colone que je veux separer.
Je vais voir ce que je peux faire pour arrangé ton code. C'est un peu la merde parceque ma colone n'a pas des "données" parfaites; ya des caracteres qui sont la mais qui ne devraient pas (tableau recuperé et mal renseigné)
En tout cas merci bien
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
xjl
Messages postés
232
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
12 juin 2007
183
1 juin 2007 à 11:05
1 juin 2007 à 11:05
Si après le nom et le prénom, tu as de nouveau un espace et d'autres renseignements, tu peux utiliser ça si tu ne veux garder que le nom et le prénom, et si tu veux tout séparer, tu peux toujours créer le nombre de colonne nécessaires et adapter ce code:
Sub sépare()
For Each Cell In Selection.Cells
Position1 = InStr(1, Cell.Value, " ")
Position2 = InStr(Position1 + 1, Cell.Value, " ")
Position3 = InStr(Position2 + 1, Cell.Value, " ")
...
Cell.Offset(0, 1).Value = Mid(Cell.Value, Len(Cell.Value) - Position1, Len(Cell.Value) - Position1)
Cell.Offset(0,2).Value = Mid(Cell.Value, Len(Cell.Value) - Position2, Len(Cell.Value) - Position3)
...
Cell.Value = Left(Cell.Value, Position1 - 1)
Next Cell
End Sub
Sub sépare()
For Each Cell In Selection.Cells
Position1 = InStr(1, Cell.Value, " ")
Position2 = InStr(Position1 + 1, Cell.Value, " ")
Position3 = InStr(Position2 + 1, Cell.Value, " ")
...
Cell.Offset(0, 1).Value = Mid(Cell.Value, Len(Cell.Value) - Position1, Len(Cell.Value) - Position1)
Cell.Offset(0,2).Value = Mid(Cell.Value, Len(Cell.Value) - Position2, Len(Cell.Value) - Position3)
...
Cell.Value = Left(Cell.Value, Position1 - 1)
Next Cell
End Sub
30 mai 2007 à 09:34
Y-a-t-il un endroit ou l'on peut voir toutes ces procedures deja ecrites et sont elles expliquées?
En tout cas merci
30 mai 2007 à 09:37
Bonne continuation...
30 mai 2007 à 10:57
Merci encore