Bonsoir Magoo, le Forum.
A quoi correspond la valeur 2 dans
Chaîne = Mid(Chaîne, 2) (je comprends la fonction)
Prenons un exemple :
Si Chaine = 'ABCDEFG' alors Mid(Chaîne, 2) = 'BCDEFG'
Ca permet tout simplement de supprimer le premier caractère de la chaîne en 'récupérant' uniquement les caractères à partir du deuxième (donc 2).
Dans mes textes il peut y avoir plusieurs numéros et des fois répéter. Comment les
récupérer sans les doublons. J'ai une variable Téléphone(n).
Si dessous, peut-être une solution à adapter :
Sub RecupTelSansDoublon()
Dim T() As String
Dim Telephone As New Collection
Dim i As Integer
'Récupération des num.téléphoniques dans une variable tableau T(n)
' ....... (voir code de récupération dans post précédent)
'
'Affectation des numéros dans une collection Telephone() en éliminant les doublons
On Error Resume Next
For i = 1 To UBound(T, 1)
Telephone.Add T(i), CStr(T(i))
Next i
On Error GoTo 0
'Affichage des numéros (sans doublon) sur la feuille 1
For i = 1 To Telephone.Count
Sheets(1).Cells(i, 1).Value = Telephone(i)
Next i
End Sub
Peut on adapter ce code pour rechercher des emails ou des adresses web?
Ces deux types d'expression sont des chaines de caractères dont les caractéristiques particulières peuvent sans doute les rendre détectables au milieu d'un texte. Je pense notamment à :
- Email : contient le caractère '@' et ne comporte pas d'espace.
- Adresse Web : commence par 'http:' et ne comporte pas d'espace.
Je n'ai pas vraiment creuser la question, mais je pense qu'il conviendrait d'isoler chaque expression (mot) dans le texte pour en tester son contenu et ainsi déterminer s'il peut s'agir d'un Email ou d'une adresse Web potentielle...
Pour récupérer tous les mots ou expressions du texte afin de les tester, tu pourrais faire quelque chose comme ça :
Sub TestExpression()
Dim Chaine As String
Dim Mots As Variant
Dim i As Long
Chaine = LeTEXTE
'Isole chaque mot du texte et les mémorise dans un tableau variant
Mots = Split(Chaine, ' ', -1, 2)
'Affiche chaque mot dans la colonne A de la feuille 1
For i = 1 To UBound(Mot, 1)
Sheets(1).Cells(i, 1).Value = Mots(i)
Next i
End Sub
J'espère que ces réponses pourront te venir en aide...
Et merci pour le compliment...
Cordialement.
Message édité par: myDearFriend!, à: 02/03/2005 23:32