VBA Extraire chaîne de caractères

  • Initiateur de la discussion Initiateur de la discussion C@thy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C@thy

XLDnaute Barbatruc
Bonjour le forum,

je récupère une chaîne de caractères du style :
/O=EXCH-ADC/OU=GA1/CN=RECIPIENTS/CN=TOTO-ADC49645217
ici je souhaiterais récupérer TOTO-ADC
/O=EXCH-ADC/OU=GA1/CN=RECIPIENTS/CN=DUPOND-ADC59333583
ici je souhaiterais récupérer DUPOND-ADC

En fait, l'instruction AdressMail = OLmail.SenderEmailAddress ne me renvoie pas du tout l'adresse e-mail avec l'@ mais une chaîne de caractères du style :
/O=EXCH-ADC/OU=GA1/CN=RECIPIENTS/CN=TOTO-ADC49645217

La vraie adresse mail avec l'@ ça aurait été super, mais à défaut, je vais rechercher l'identifiant
donc j'ai essayé ceci :
v = Split(AdressMail, "/")
AdressMail = v(4) 'j'obtiens CN=TOTO-ADC49645217
lg = Len(AdressMail)
ident = Mid(AdressMail, 4, lg - InStr(AdressMail, "-ADC") + 6)
mais ça ne fonctionne pas comme je veux...

avez-vous une idée pour récupérer l'identifiant (qui se termine toujours par -ADC)
ou bien l'adresse e-mail avec l'@???

Merci à vous

C@thy
 
Dernière édition:
Re : VBA Extraire chaîne de caractères

Bonjour C@thy 🙂

peut-être

Code:
ident = Mid(AdressMail, 4, InStr(AdressMail, "-ADC"))
Pour l'adresse mail, elle est stockée dans Active Directory (AD).
Quand on installe un serveur Exchange, les données de l'Active Directory sont enrichies avec les informations des boites mail créées, je ne sais pas s'il y a un autre moyen que parcourir l'AD, ou si on peut "interroger" le serveur Exchange directement.

Edit : Bing, bonjour Tempus
 
Re : VBA Extraire chaîne de caractères

Bonjour
La dernière instruction comme ça:
VB:
Ident = Mid$(AdressMail, 4, InStr(AdressMail, "-ADC") - 4)


P.S. Mais on pouvait aussi faire:
VB:
V = Split(Replace(Replace(AdressMail, "=", "/"), "-ADC", "/"), "/")
Ident = V(UBound(V) - 1)
À +
 
Dernière édition:
Re : VBA Extraire chaîne de caractères

Bonjour le fil et merci à tous.

Tototiti, il y a 2 fois -ADC donc ta formule me renvoie EXCH-ADC

phlaurent55 je boucle sur tous mes emails de la boite de réception, donc je fais tout ça en VBA😎
Dranreb, même chose, il y a 2 fois -ADC donc ta 1ère formule me renvoie EXCH-ADC

pour ta 2ème proposition, en rajoutant ceci
ident = v(UBound(v) - 1) & "-ADC"
cela fonctionne.

Bises

C@thy
 
Dernière édition:
Re : VBA Extraire chaîne de caractères

Bonjour C@thy, le fil,

Avec InStrRev dans cette fonction macro (Module1) :

Code:
Function MAIL(txt$)
Dim fin%, deb%
fin = InStrRev(txt, "-ADC") + 3
txt = Left(txt, fin)
deb = InStrRev(txt, "CN=") + 3
MAIL = Mid(txt, deb, fin - deb + 1)
End Function
Si le texte est en A1 entrer en B1 =MAIL(A1)

A+
 
Re : VBA Extraire chaîne de caractères

Dixit pour ma solution ?

P.S. Ah non. Rien dit, tu avais commenté. Excuses.

P.S.2 Pour la 1ère solution, si quand même retenue, remplacer peut être Instr par InstrRev
 
Dernière édition:
Re : VBA Extraire chaîne de caractères

Sorry TempusFugit,

non ça ne fonctionne pas

Edit j'ai un = en trop

Biz

OK, ça fonctionne comme ça :

MsgBox Mid(Split(chaine, "/CN=")(2), 1, InStr(Split(chaine, "/CN=")(2), "-ADC") + 3)

Biz

C@thy
 
Dernière édition:
Re : VBA Extraire chaîne de caractères

Pourtant cela fonctionne sur mon PC

Code:
Sub MacroOK()
Dim chaine As String
chaine = "/O=EXCH-ADC/OU=GA1/CN=RECIPIENTS/CN=DUPOND-ADC59333583"
MsgBox Mid(Split(chaine, "/CN")(2), 1, InStr(Split(chaine, "/CN")(2), "-ADC") + 3)
End Sub
 
Re : VBA Extraire chaîne de caractères

Désolé

Voic sans le =
Code:
Sub MacroOKV2()
Dim chaine As String
chaine = "/O=EXCH-ADC/OU=GA1/CN=RECIPIENTS/CN=DUPOND-ADC59333583"
MsgBox Mid(Split(chaine, "/CN=")(2), 1, InStr(Split(chaine, "/CN")(2), "-ADC") + 2)
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour