IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Affecter plusieurs parties d'une phrase dans des cellules [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 20
    Points
    20
    Par défaut Affecter plusieurs parties d'une phrase dans des cellules
    Bonjour,

    Je reçois une quantité importante de messages concernant la gestion d'utilisateurs pour l'accès à une application de mon travail. L'objet du mail rassemble plusieurs informations que je dois reporter dans un fichier Excel à des fins de suivi (notamment le nom, le prénom et le nom d'utilisateur).

    Vu que ce flux de mails va croissant, mes activités de saisie prennent un temps trop considérables et j'ai bien envie de me développer une petite macro pour gagner du temps.

    Vu qu'Outlook me permet d'exporter une liste des emails d'un dossier au format Excel, j'ai toutes les informations nécessaires. Il me reste juste à pouvoir extraire les informations essentielles. Sauf qu'il y a quelques particularités et je maîtrise très mal les fonctions right(, len( etc.

    Voici la structure de l'objet des mails d'affectation

    "[APPLICA] Affectation de l'utilisateur " (39 caractères)
    "Prénom" (variable, jamais sans espaces)
    " " (1 caractère)
    "Nom" (variable, jamais sans espaces)
    " (USERNAME=" (11 caractères)
    "USERNAME" (6 ou 8 caractères)
    ") aux groupes d'ayants-droit des applications suivantes" (54 caractères)

    J'imagine que pour les variables Nom, Prénom et USERNAME, il faudrait que je puisse sélectionner le mot entier. En revanche, là où ça se complique, c'est que ces trois variables ont des tailles non fixes, et qu'une des premières pistes de recherche serait d'exclure le texte invariant.

    Quelles autres pistes pourrais-je suivre ?

    Bien cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Est-ce que c'est toi qui a fait les retours à la ligne où est-ce que c'est une seule phrase ?

    Un cas concret (en changeant les noms) pourrait aider.

    Par exemple si c'est une phrase avec un élément entre chaque donnée, la fonction Split pourrait aider.

    Philippe

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    J'ai fait les retours à la ligne pour bien distinguer les différents éléments.

    ce qui donne :

    [APPLICA] Affecation de l'utilisateur Paul DUPONT (USERNAME=A00000) aux groupes d'ayants-droit des applications suivantes

  4. #4
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2006
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Bonjour.

    Merci pour le conseil avec l'instruction Split(, j'ai pu parvenir à mes fins.

    Pour mémoire, voici le code que j'ai écrit.

    Les phrases à traiter sont présentes dans la colonne A. La première partie du code sépare par mots (utilisation de l'espace comme différenciant) et réécrit son contenu dans les colonnes adjacentes (B et suivantes), la seconde partie se concentre sur la colonne contenant la valeur USERNAME et en extrait les caractères désirés selon le cas de figure (nom d'utilisateur à 6 ou 8 caractères).

    Il doit certainement y avoir un moyen de rendre le code un peu plus propre, mais la "moulinette" fonctionne très bien.

    Je considère ce problème comme résolu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Sub Traitement Objet()
    '
    ' Macro d'extraction des informations contenu dans l'objet du mail
    '
    Dim valeur As String
    Dim tableau() As String
    Dim feuil As Worksheet
    Dim i, a, b, end_ligne_temp As Integer
     
    Sheets(1).Select
    end_ligne_temp = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
     
    For a = 1 To end_ligne_temp
     
        Cells(a, 1).Select
        valeur = Cells(a, 1).value
     
        tableau = Split(valeur, " ")
     
        For i = 0 To UBound(tableau)
        Cells(a, i + 2).value = tableau(i)
     
        Next i
     
    Next a
     
    For b = 1 To end_ligne_temp
    If Len(Cells(b, 9).value) = 17 Then
    Cells(b, 9).value = Mid(Cells(b, 9).value, 11, 6)
    End If
    If Len(Cells(b, 9).value) = 19 Then
    Cells(b, 9).value = Mid(Cells(b, 9).value, 11, 8)
    End If
     
    Next b
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Couper/coller des mots d'une phrase dans une autre cellule
    Par oxxymore dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/01/2013, 14h02
  2. couper une partie de la phrase dans les enregistrements
    Par bobafric dans le forum VBA Access
    Réponses: 9
    Dernier message: 21/08/2009, 01h29
  3. rendre une partie d'une phrase variable dans une cellule, est ce possible?
    Par voldo2142 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/02/2008, 09h08
  4. eclater une phrase dans des variable
    Par lassmust dans le forum Delphi
    Réponses: 2
    Dernier message: 06/07/2006, 23h11
  5. Réponses: 2
    Dernier message: 25/07/2005, 14h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo