Analyse chaîne de caractères
Résolu/Fermé
A voir également:
- Analyse chaîne de caractères
- Caractères ascii - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractères spéciaux clavier azerty - Guide
- Analyse disque dur - Télécharger - Informations & Diagnostic
- Analyse performance pc - Guide
10 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
26 avril 2020 à 16:26
26 avril 2020 à 16:26
Bonjour,
comme ceci:
Voilà
comme ceci:
Range("A2").Value = Split(Range("A1").Value, "_")(0) Range("A3").Value = Split(Range("A1").Value, "_")(1)
Voilà
Utilisateur anonyme
26 avril 2020 à 15:19
26 avril 2020 à 15:19
Bonjour
Tu peux utiliser l'instruction split, qui découpe une chaine en fonction d'un séparateur.
Ici le séparateur sera "_".
Le résultat est retourné sous la forme d'un tableau de string, il te suffit de mettre le premier item du tableau dans la cellule A2 et le second item dans la cellule A3.
Tu peux utiliser l'instruction split, qui découpe une chaine en fonction d'un séparateur.
Ici le séparateur sera "_".
Le résultat est retourné sous la forme d'un tableau de string, il te suffit de mettre le premier item du tableau dans la cellule A2 et le second item dans la cellule A3.
Ok, ça donne:
Dim monTab() As String
monTab = Split(A11, "_")
Maintenant je ne sais pas rédiger correctement:
Range("A2") = monTab(0)
Range("A3") = monTab(1)
Dim monTab() As String
monTab = Split(A11, "_")
Maintenant je ne sais pas rédiger correctement:
Range("A2") = monTab(0)
Range("A3") = monTab(1)
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
1 557
26 avril 2020 à 15:57
26 avril 2020 à 15:57
que se passe-t'il quand tu rédiges comme tu le présentes?
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
1 557
26 avril 2020 à 16:01
26 avril 2020 à 16:01
t'es-tu assuré d'avoir mis
option expliciten début de module?
Ranger59
>
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
Modifié le 26 avril 2020 à 18:39
Modifié le 26 avril 2020 à 18:39
=>que se passe-t'il quand tu rédiges comme tu le présentes?
Ce message d'erreur "L'indice n'appartient pas à la sélection"
=>t'es-tu assuré d'avoir mis option explicit en début de module?
Non je ne connais pas ce terme. Ca signifie quoi ?
J'ai essayé
Range("D3").Value = Split(Range("A11").Value, "_")(0)
Range("D5").Value = Split(Range("A11").Value, "_")(1)
et ça fonctionne néanmoins comme je dis plus bas à l'intervenant cs_Le Pivert, quand je teste "1901059841_021015", les caractères "021015" sont collés en "21015", le 0 est supprimé et ça ça ne m'aide pas.)
J'ai bidouillé en changeant le Format de cellule directement dans la cellule A3, c'était nombre j'ai mis texte, et maintenant la macro garde bien le 0 après la copie.
Ce message d'erreur "L'indice n'appartient pas à la sélection"
=>t'es-tu assuré d'avoir mis option explicit en début de module?
Non je ne connais pas ce terme. Ca signifie quoi ?
J'ai essayé
Range("D3").Value = Split(Range("A11").Value, "_")(0)
Range("D5").Value = Split(Range("A11").Value, "_")(1)
et ça fonctionne néanmoins comme je dis plus bas à l'intervenant cs_Le Pivert, quand je teste "1901059841_021015", les caractères "021015" sont collés en "21015", le 0 est supprimé et ça ça ne m'aide pas.)
J'ai bidouillé en changeant le Format de cellule directement dans la cellule A3, c'était nombre j'ai mis texte, et maintenant la macro garde bien le 0 après la copie.
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
1 557
>
Ranger59
26 avril 2020 à 18:08
26 avril 2020 à 18:08
ajouter
option expliciten haut de chaque module te préviendra quand tu fais le genre d'erreur que tu as faite dans ton code.
Ranger59
>
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
Modifié le 26 avril 2020 à 18:39
Modifié le 26 avril 2020 à 18:39
Y a bon, j'ai ajouté "option explicit" au dessus du "Sub...."
et j'ai retiré la ligne "monTab = Split(A11, "_")"
et ça marche
J'ai essayé
Range("D3").Value = Split(Range("A11").Value, "_")(0)
Range("D5").Value = Split(Range("A11").Value, "_")(1)
et ça fonctionne néanmoins comme je dis plus bas à l'intervenant cs_Le Pivert, quand je teste "1901059841_021015", les caractères "021015" sont collés en "21015", le 0 est supprimé et ça ça ne m'aide pas.)
J'ai bidouillé en changeant le Format de cellule directement dans la cellule A3, c'était nombre j'ai mis texte, et maintenant la macro garde bien le 0 après la copie.
et j'ai retiré la ligne "monTab = Split(A11, "_")"
et ça marche
J'ai essayé
Range("D3").Value = Split(Range("A11").Value, "_")(0)
Range("D5").Value = Split(Range("A11").Value, "_")(1)
et ça fonctionne néanmoins comme je dis plus bas à l'intervenant cs_Le Pivert, quand je teste "1901059841_021015", les caractères "021015" sont collés en "21015", le 0 est supprimé et ça ça ne m'aide pas.)
J'ai bidouillé en changeant le Format de cellule directement dans la cellule A3, c'était nombre j'ai mis texte, et maintenant la macro garde bien le 0 après la copie.
Utilisateur anonyme
26 avril 2020 à 15:45
26 avril 2020 à 15:45
Je ne fais pas de VBA, mais comme tu t'y connais, je pensais que cette partie ne te poserait pas de problème...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je m'y connais oui mais par exemple j'ai tapé ça:
Dim monTab() As String
monTab = Split(A1, "_")
Range("A2").Value = monTab(0)
Range("A3").Value = monTab(1)
et j'ai l'erreur "L'indice n'appartient pas à la sélection" et je ne sais pas comment résoudre ce problème.
Dim monTab() As String
monTab = Split(A1, "_")
Range("A2").Value = monTab(0)
Range("A3").Value = monTab(1)
et j'ai l'erreur "L'indice n'appartient pas à la sélection" et je ne sais pas comment résoudre ce problème.
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
1 557
26 avril 2020 à 16:13
26 avril 2020 à 16:13
il est indispensable d'identifier sur quelle ligne de code se produit une erreur.
Ranger59
>
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
Modifié le 26 avril 2020 à 18:07
Modifié le 26 avril 2020 à 18:07
Le problème se produit à la ligne Range("A2").Value = monTab(0)
Utilisateur anonyme
26 avril 2020 à 15:58
26 avril 2020 à 15:58
Ha en VBA, si je me souviens bien, l'index du premier item d'un tableau se paramètre dans les options.
C'est soit 0, soit 1.
Tu es peut-être configuré avec 1, et donc 0 n'existe pas
C'est soit 0, soit 1.
Tu es peut-être configuré avec 1, et donc 0 n'existe pas
J'ai déjà essayé avec:
Range("A2").Value = monTab(1)
Range("A3").Value = monTab(2)
et même message d'erreur
Range("A2").Value = monTab(1)
Range("A3").Value = monTab(2)
et même message d'erreur
Utilisateur anonyme
26 avril 2020 à 16:04
26 avril 2020 à 16:04
A1 c’est une variable dans laquelle tu as mis le contenu de la cellule ?
Parce si non, alors il n’y a rien dans A1 et donc forcément rien dans le résultat du split
Parce si non, alors il n’y a rien dans A1 et donc forcément rien dans le résultat du split
Non dans A1 j'incris moi-même, à la main, du contenu du genre "1901080875_71277" et ensuite je souhaite cliquer sur un bouton pour que ça me copie "1901080875" dans A2 et "71277" dans A3 (créer un bouton le nommer et lui affecter une macro je sais faire ;) )
Utilisateur anonyme
26 avril 2020 à 16:42
26 avril 2020 à 16:42
Ici
Tu demandes à splité la variable A1, pas la cellule A1..
monTab = Split(A1, "_")
Tu demandes à splité la variable A1, pas la cellule A1..
Ben oui c'est normal, la variable A1 est vide.
Le code du pivert fonctionne parce que lui, il se sert du contenu de la cellule A1.
Commencer ta question par
Et du coup, j'ai basé mes réponses sur ce bout de phrase, même si j'ai rapidement eu un doute.
Cependant une fois que tu avais trouvé que pour affecter une cellule, il fallait se servir de l'objet Range et de sa propriété Value, j'ai cru que tu réaliserais que pour la lire aussi....
Le but d'une macro étant généralement d'interagir avec les données contenues dans les feuilles, lire et écrire dans un cellule est la base de la base. Et faire la différence entre ce qui est écrit dans les cellules et les variables des macros juste l'étape d'après.
Je te conseille de revoir les bases de VBA avant d'annoncer
Le code du pivert fonctionne parce que lui, il se sert du contenu de la cellule A1.
Commencer ta question par
je m'y connais en VBAest semble t il exagéré, tu ne sais pas faire la différence entre une cellule et une variable.
Et du coup, j'ai basé mes réponses sur ce bout de phrase, même si j'ai rapidement eu un doute.
Cependant une fois que tu avais trouvé que pour affecter une cellule, il fallait se servir de l'objet Range et de sa propriété Value, j'ai cru que tu réaliserais que pour la lire aussi....
Le but d'une macro étant généralement d'interagir avec les données contenues dans les feuilles, lire et écrire dans un cellule est la base de la base. Et faire la différence entre ce qui est écrit dans les cellules et les variables des macros juste l'étape d'après.
Je te conseille de revoir les bases de VBA avant d'annoncer
je m'y connais en VBAet du coup perdre du temps avec des réponses qui considèrent qu'effectivement tu t'y connais.
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
1 557
>
Utilisateur anonyme
26 avril 2020 à 18:56
26 avril 2020 à 18:56
il suffisait d'écrire
[A1]pour récupérer le contenu de la cellule A1...
Utilisateur anonyme
>
yg_be
Messages postés
23408
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 décembre 2024
26 avril 2020 à 19:19
26 avril 2020 à 19:19
Merci, mais cela servira à Ranger plus qu'à moi, la dernière macro que j'ai faite date de plusieurs années...
Modifié le 26 avril 2020 à 18:39
Néanmoins, quand je teste "1901059841_021015", les caractères "021015" sont collés en "21015", le 0 est supprimé et ça ça ne m'aide pas.
J'ai bidouillé en changeant le Format de cellule directement dans la cellule A3, c'était nombre j'ai mis texte, et maintenant la macro garde bien le 0 après la copie.