Copier une partie d'un texte

Résolu
Signaler
Messages postés
54
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
14 juillet 2007
-
Messages postés
54
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
14 juillet 2007
-
salut!
Alors voilà je vous explique mon problème:
j'ai une chaine de caractères dont je veux copier uniquement la partie comprise entre 2 mots définis.
Du coup j'ai fais çà:

Dim a As String
Dim b As String
a = InStr(Chaine, "mot1")
b = InStr(Chaine, "mot2")

j'ai donc la position du premier caractère du mot1 (a) et du mot2 (b)
Et je voudrais savoir comment copier les caractères compris entre a et b

merci d'avance

6 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
Salut,

En utilisant la fonction Mid :
Mid$(Chaine, a, b - a)






__________
Kenji
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,
sous forme de fonction çà donne çà :
http://www.codyx.org/snippet_recuperer-chaine-inconnue-placee-entre-deux-chaines-connues_334.aspx
++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
54
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
14 juillet 2007

merci pour votre aide!
mais j'ai un autre problème maintenant! lol
J'ai essayé de faire un InStr sur une chaine avec plus de 50000 caractères et çà ne marche pas.
Est ce que la fonction InStr est limité en nombre de caractères à analyser?
Ou alors est ce qu'il y a une autre méthode?
merci
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

InStr est une fonction de type Long. Tu as de la marge...
Tu dois mal utiliser la fonction, regarde avec un mot de cent mille cinq caractères ;

Sub EXEMPLE()
    Dim sWord As String
    
sWord = Space(100000) & "salut"
MsgBox Len(sWord) 'retourne 100005

If InStr(1, sWord, "salut") > 0 Then
    MsgBox "Position du mot ~salut~ :
" & InStr(1, sWord, "salut") 'retourne 100001
Else
    MsgBox "Le mot ~salut~ n'est pas dans la chaine sWord"
End If

End Sub


~ <small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
çà sert à rien de se casser la tête à pondre des snippets puisqu'ils ne sont pas lus

a = InStr( Chaine , "mot1")
lPosL  = 
InStr(Start, Expression, sLeft)
InStr(1, sWord, "salut")

y'a un argument de différent non?.....

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
54
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
14 juillet 2007

je suis franchement désolé de vous avoir dérangés pour rien, c'était juste une erreur de code de ma part
Encore merci pour votre aide!!!
à bientôt ;-)