Macro Excel
Fermé
Pommesky
-
1 oct. 2008 à 14:48
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 oct. 2008 à 08:58
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 4 oct. 2008 à 08:58
A voir également:
- Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
8 réponses
tu stockes ta chaine dans une variable ensuite tu fais les opérations suivantes :
- Utilise la fonction Mid(string, start, [length]) pour virer le début de la phrase (String étant la chaine, start la position de départ que tu connais vu que le début est toujours le même, et length est optionnel donc le met pas)
Dans ton cas ça donne (en supposant que ta variable contenant la phrase est "TEXTE" et que temp est une variable temporaire pour stocker le résultat intermédiaire).
temp = Mid(TEXTE, 70)
Il te restera alors "ESCALATORS.Entrée de comptage;GTC:C:$d4'CI45.CI_Inst_24h"
- Ensuite tu utilises la fonction Split() pour récupérer ce qui est avant le "." (result est le résultat final, le 1 spécifie que tu ne veux que le premier résultat)
result = Split(temp, ".", 1)
- Utilise la fonction Mid(string, start, [length]) pour virer le début de la phrase (String étant la chaine, start la position de départ que tu connais vu que le début est toujours le même, et length est optionnel donc le met pas)
Dans ton cas ça donne (en supposant que ta variable contenant la phrase est "TEXTE" et que temp est une variable temporaire pour stocker le résultat intermédiaire).
temp = Mid(TEXTE, 70)
Il te restera alors "ESCALATORS.Entrée de comptage;GTC:C:$d4'CI45.CI_Inst_24h"
- Ensuite tu utilises la fonction Split() pour récupérer ce qui est avant le "." (result est le résultat final, le 1 spécifie que tu ne veux que le premier résultat)
result = Split(temp, ".", 1)
Merci de ta réponse j'ai réussit a mettre mon texte dans une variable mais après tes deux commandes ne marchent pas j'ai tout essayer les deux puis l'une et l'autre mais la case ne bouge pas je pense que cela vient de la commande result que je doit mal employer voila mon code
Range("A1").Select
Dim Titre As String
Titre = Range("A1")
temp = Mid(Titre, 70)
result = Split(temp, ".", 1)
Range("A1").Select
Dim Titre As String
Titre = Range("A1")
temp = Mid(Titre, 70)
result = Split(temp, ".", 1)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
2 oct. 2008 à 22:13
2 oct. 2008 à 22:13
Bonsoir,
C'est bizarre, le split aurait dû marcher...
Tu peux faire aussi comme ça :
result=Left(Mid([A1].value, 70), InStr(temp, ".") - 1)
et si tu veux remplacer ta cellule A1:
[A1].value=Left(Mid([A1].value, 70), InStr(temp, ".") - 1)
eric
C'est bizarre, le split aurait dû marcher...
Tu peux faire aussi comme ça :
result=Left(Mid([A1].value, 70), InStr(temp, ".") - 1)
et si tu veux remplacer ta cellule A1:
[A1].value=Left(Mid([A1].value, 70), InStr(temp, ".") - 1)
eric
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
3 oct. 2008 à 02:09
3 oct. 2008 à 02:09
Bonsoir,
Mon ptit grain de sel :)
Je pense qu'il n'a pas saisi qu'avec split, Result devenait un tableau et que
Result(0) = Escalator
Result(1) = le reste de la phrase.
par exemple..pour refaire la phrase au complet avec le nouveau mot,
NouvMot ="Ascensseur"
Titre = left(Titre,69) & NouvMot & Result(1)
A+
Mon ptit grain de sel :)
Je pense qu'il n'a pas saisi qu'avec split, Result devenait un tableau et que
Result(0) = Escalator
Result(1) = le reste de la phrase.
par exemple..pour refaire la phrase au complet avec le nouveau mot,
NouvMot ="Ascensseur"
Titre = left(Titre,69) & NouvMot & Result(1)
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
3 oct. 2008 à 07:10
3 oct. 2008 à 07:10
Bonjour à tous
effectivement lermite222 split non seulement renvoie un tableau, mais aussi n'est pas sur toutes les versions d'excel, la version 97 ne le comprend pas et je ne sais plus à partir de quelle version il a été mis en place
sinon pour eviter de recuperer un tableau
monmot = split(maphrase,".")(0)
autre solution qui marche sur toutes les versions :
monmot = left(maphrase, instr(maphrase,".")-1)
en reprenant le code d'ericccc
monmot = mid(maphrase,70,instr(70,maphrase,".")-71)
effectivement lermite222 split non seulement renvoie un tableau, mais aussi n'est pas sur toutes les versions d'excel, la version 97 ne le comprend pas et je ne sais plus à partir de quelle version il a été mis en place
sinon pour eviter de recuperer un tableau
monmot = split(maphrase,".")(0)
autre solution qui marche sur toutes les versions :
monmot = left(maphrase, instr(maphrase,".")-1)
en reprenant le code d'ericccc
monmot = mid(maphrase,70,instr(70,maphrase,".")-71)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
3 oct. 2008 à 07:14
3 oct. 2008 à 07:14
Ah yess, je ne voyais pas où ça clochait, la proposition de Pommesky me paraissait bien correcte pourtant...
Merci et bonne journée
eric
Merci et bonne journée
eric
Erf je suis novice et j'ai pas compris grand chose (quand je dit novice c'est ma première macro) et même si vous me donner un morceau de code je comprend pas trop comment l'intégrer est ce que quelqu'un pourrais m'apporter une réponse a mon niveau ^^ il faut un début a tout
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
3 oct. 2008 à 23:23
3 oct. 2008 à 23:23
Ben tout dépend de ce que tu veux faire et de ce que tu sais (ou ne sais pas) faire, on ne peut pas deviner...
Tu peux te faire par exemple une fonction personnalisée :
Si tu as ta phrase en A2, dans une cellule tu saisis
=extrait(A2) et tu y récupères ESCALATOR
eric
Tu peux te faire par exemple une fonction personnalisée :
Function extrait(cel As Range) Dim tmp As String tmp = Mid(cel.Value, 70) extrait = Left(tmp, InStr(tmp, ".") - 1) End Functionà coller dans un module.
Si tu as ta phrase en A2, dans une cellule tu saisis
=extrait(A2) et tu y récupères ESCALATOR
eric
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
4 oct. 2008 à 05:47
4 oct. 2008 à 05:47
re:
et pourquoi pas une simple formule alors
=STXT(A1;70;CHERCHE(".";A1;71)-70)
plus de probleme avec vba
et pourquoi pas une simple formule alors
=STXT(A1;70;CHERCHE(".";A1;71)-70)
plus de probleme avec vba
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 255
4 oct. 2008 à 08:58
4 oct. 2008 à 08:58
Bonjour wilfried,
heuuu, parce que le titre est 'macro excel' ?
Mais c'est vrai que lui donner en exemple d'intégration dans une macro une fonction n'était peut-être pas le meilleur car c'est vrai que là c'est totalement inutile.
Ce qui est amusant c'est qu'on ne lui a jamais demandé s'il le voulait absolument du vba et ta réponse le satisfera... :-)
eric
heuuu, parce que le titre est 'macro excel' ?
Mais c'est vrai que lui donner en exemple d'intégration dans une macro une fonction n'était peut-être pas le meilleur car c'est vrai que là c'est totalement inutile.
Ce qui est amusant c'est qu'on ne lui a jamais demandé s'il le voulait absolument du vba et ta réponse le satisfera... :-)
eric