Analyse chaîne de caractères
Résolu
Ranger59
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour, je m'y connais en VBA mais pas assez pour:
dans une cellule A1 j'ai le contenu par exemple "1901080875_71277" (avant le "_" ce sont toujours 10 chiffres, après le "_" ce sont des chiffres et par moment des lettres (par exemple 021019 / SP050220 / Y200320)
Je souhaite en cliquant sur un bouton de macro copier les caractères avant le "_" dans la cellule A2 et copier les caractères après le "_" dans la cellule A3.
Merci.
dans une cellule A1 j'ai le contenu par exemple "1901080875_71277" (avant le "_" ce sont toujours 10 chiffres, après le "_" ce sont des chiffres et par moment des lettres (par exemple 021019 / SP050220 / Y200320)
Je souhaite en cliquant sur un bouton de macro copier les caractères avant le "_" dans la cellule A2 et copier les caractères après le "_" dans la cellule A3.
Merci.
A voir également:
- Analyse chaîne de caractères
- Caractères ascii - Guide
- Caractères spéciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Analyse composant pc - Guide
- Plus de chaine tv - Guide
10 réponses
Bonjour,
comme ceci:
Voilà
comme ceci:
Range("A2").Value = Split(Range("A1").Value, "_")(0) Range("A3").Value = Split(Range("A1").Value, "_")(1)
Voilà
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)
=>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.
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.
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.
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
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 ;) )
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.
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.