macro complexe - occurence de texte sur fichiers joint

Le
Lune Rousse
Bonjour,

Si l’un ou l’une d’entre vous à des pistes pour résoudre le long
problème VBA suivant je suis à l’écoute.

Merci.

Lune Rousse


Chacune des cellules de E3 à Exxxx de la feuille TUTU contient un mot
associé à un hyperlien qui renvoi vers un dossier.

Je souhaite appliquer une macro à chacune des cellules pleines de la
plage E3 : E25000 pour obtenir le résultat suivant : (Le traitement
reste invisible pour l’utilisateur.)

Macro :

En VBA je clic sur l’hyperlien de la cellule E3, le dossier associé
s’ouvre.

Trois cas peuvent alors se présenter :

1 – La cellule E3 a déjà été traitée lors d’un travail préc=
èdent. Cela
est visible car la cellule F3 contient un petit x. (Dans ce cas,
aucune action, je traite simplement la cellule suivante de la colonne
E de la feuille TUTU, ici E4).

2– Le dossier ouvert par l’hyperlien de E3 est vide, il peut contenir
d’autres dossiers mais il ne contient pas de fichier. Dans ce cas, je
mets simplement un petit x dans la cellule F3, et je traite la cellule
suivante de la colonne E de la feuille TUTU.

3 – Le dossier ouvert par l’hyperlien de E3 contient un ou des
fichiers. (Les sous-dossiers présents ne sont pas traités.)
Deux cas, « a » ou « b », sont alors possibles :

a- L’un des fichiers est un document *.eml et son nom contient au
moins les neuf premiers caractères de la cellule de départ (ici E3)
(exemple, si la cellule E3 contient : DÉSOXYRIBONUCLÉIQUE le fichier
*.eml peut se nommer « vecteur azotée et Désoxyribonucléotides dctp=
»

i. Dans ce cas il me faut rechercher dans le corps ou dans l’en-tête
du message le chiffre 20xx qui me donnera l’année d’envoi du message.
Ce chiffre sera alors posé dans la cellule G3 puisque je traite E3.
ii. Dans le corps du message je recherche une occurrence de texte par
exemple : «quaternion» si je la trouve ne fusse qu’une fois je mets u=
n
petit x dans la cellule H3 puisque je traite E3 et je passe
directement à l’étape v sans réaliser les étapes iii et iv, sinon=
:
iii. J’ouvre toutes les pièces jointes au message *.eml (les *.doc,
*.docx, *.ppt, *.odt,*.pdf,*.xls, *.xlsx) et je recherche l’expression
«quaternion» dans ces pièces jointes. Si je la trouve ne fusse qu’u=
ne
fois je mets un petit x dans la cellule H3 puisque je traite E3.
iv. Si je n’ai pas trouvé l’ expression « quaternion» je mets u=
n
petit x dans la cellule i3.
v. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

b- Il n’y a pas de fichier *.eml qui porte au moins les neuf premiers
caractères de la cellule de départ (ici E3). Dans ce cas :

i. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx présent dans le dossier ouvert par l’hyperlien, sans ouvrir
les documents présents dans les sous dossiers et je recherche
l’expression «20xx» correspondant au numéros de l’année écrit=
e dans
ces documents. Ce chiffre sera alors posé dans la cellule G3 puisque
je traite E3.

Pour ce traitement s’il existe dans ce document les chiffres 2006,
2007 et 2005, on garde le chiffre le plus élevé, on le stock et on le
compare aux autres chiffres trouvés dans les autres documents pour ne
conservé que le plus élevé.
ii. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx et je recherche l’expression «quaternion» dans ces documents.
Si je la trouve ne fusse qu’une fois je mets un petit x dans la
cellule H3 puisque je traite E3.
iii. Si je n’ai pas trouvé l’ expression « quaternion» je mets =
un
petit x dans la cellule i3.
iv. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

Ouf j’ai fini !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Papyjac
Le #19974801
Bonjour Lune Rousse,

Tes spécifications me semblent correctes, mais je crains que l'on s'éloigne
d'une question ponctuelle appelant une réponse précise

Tu demandes carrément à quelqu'un d'écrire ta macro.

Il faut que nous disent, ce que tu sais pas faire plus précisément

Car soit, tu es bloquée dès le démarrage de ton code, soit tu as commencé
ton code et tu peines sur telle ou telle fonction...

Dans le premier cas, il faut que tu ramènes à un problème plus simple (sans
les 3 cas, sans le petit x...) et puis tu enrichis en fonction des résultats
obtenus

Dans le 2ème cas tu nous donnes ton code en cours avec le problème identifié

Pour ma part j'aurai tendance à dire que la cellule contenant un lien
hypertexte ne devrait contenir qu'un seul fichier ou qu'un seul dossier

Désolé de ne répondre plus précisément à ta question

Papyjac

"Lune Rousse" news:

Bonjour,

Si l’un ou l’une d’entre vous à des pistes pour résoudre le long
problème VBA suivant je suis à l’écoute.

Merci.

Lune Rousse


Chacune des cellules de E3 à Exxxx de la feuille TUTU contient un mot
associé à un hyperlien qui renvoi vers un dossier.

Je souhaite appliquer une macro à chacune des cellules pleines de la
plage E3 : E25000 pour obtenir le résultat suivant : (Le traitement
reste invisible pour l’utilisateur.)

Macro :

En VBA je clic sur l’hyperlien de la cellule E3, le dossier associé
s’ouvre.

Trois cas peuvent alors se présenter :

1 – La cellule E3 a déjà été traitée lors d’un travail précèdent. Cela
est visible car la cellule F3 contient un petit x. (Dans ce cas,
aucune action, je traite simplement la cellule suivante de la colonne
E de la feuille TUTU, ici E4).

2– Le dossier ouvert par l’hyperlien de E3 est vide, il peut contenir
d’autres dossiers mais il ne contient pas de fichier. Dans ce cas, je
mets simplement un petit x dans la cellule F3, et je traite la cellule
suivante de la colonne E de la feuille TUTU.

3 – Le dossier ouvert par l’hyperlien de E3 contient un ou des
fichiers. (Les sous-dossiers présents ne sont pas traités.)
Deux cas, « a » ou « b », sont alors possibles :

a- L’un des fichiers est un document *.eml et son nom contient au
moins les neuf premiers caractères de la cellule de départ (ici E3)
(exemple, si la cellule E3 contient : DÉSOXYRIBONUCLÉIQUE le fichier
*.eml peut se nommer « vecteur azotée et Désoxyribonucléotides dctp »

i. Dans ce cas il me faut rechercher dans le corps ou dans l’en-tête
du message le chiffre 20xx qui me donnera l’année d’envoi du message.
Ce chiffre sera alors posé dans la cellule G3 puisque je traite E3.
ii. Dans le corps du message je recherche une occurrence de texte par
exemple : «quaternion» si je la trouve ne fusse qu’une fois je mets un
petit x dans la cellule H3 puisque je traite E3 et je passe
directement à l’étape v sans réaliser les étapes iii et iv, sinon :
iii. J’ouvre toutes les pièces jointes au message *.eml (les *.doc,
*.docx, *.ppt, *.odt,*.pdf,*.xls, *.xlsx) et je recherche l’expression
«quaternion» dans ces pièces jointes. Si je la trouve ne fusse qu’une
fois je mets un petit x dans la cellule H3 puisque je traite E3.
iv. Si je n’ai pas trouvé l’ expression « quaternion» je mets un
petit x dans la cellule i3.
v. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

b- Il n’y a pas de fichier *.eml qui porte au moins les neuf premiers
caractères de la cellule de départ (ici E3). Dans ce cas :

i. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx présent dans le dossier ouvert par l’hyperlien, sans ouvrir
les documents présents dans les sous dossiers et je recherche
l’expression «20xx» correspondant au numéros de l’année écrite dans
ces documents. Ce chiffre sera alors posé dans la cellule G3 puisque
je traite E3.

Pour ce traitement s’il existe dans ce document les chiffres 2006,
2007 et 2005, on garde le chiffre le plus élevé, on le stock et on le
compare aux autres chiffres trouvés dans les autres documents pour ne
conservé que le plus élevé.
ii. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx et je recherche l’expression «quaternion» dans ces documents.
Si je la trouve ne fusse qu’une fois je mets un petit x dans la
cellule H3 puisque je traite E3.
iii. Si je n’ai pas trouvé l’ expression « quaternion» je mets un
petit x dans la cellule i3.
iv. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

Ouf j’ai fini !
FS
Le #19979281
> Si l’un ou l’une d’entre vous à des pistes



En général, pour résoudre un problème complexe, il est utile de le
découper en petits bouts, chacun d'eux étant traité par une macro ou une
fonction. La procédure qui permettra de résoudre l'ensemble du problème
sera au final constituée d'appels de ces macros ou fonctions.
Tu as déjà pas mal découpé ton problème.
Il va te falloir, par exemple, une fonction perso pour traiter le cas
des fichiers eml. Elle renverra comme résultat 'vrai' si elle a trouvé
ce que tu cherches, 'faux' sinon. Autre fonction s'il n'y a pas de
fichier eml. Dans les deux cas, le mot clé à rechercher (quaternion dans
ton exemple) sera passé en paramètre de la fonction.
Un problème clairement posé étant, dit-on, à moitié résolu, tu es bien
parti(e) :)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Lune Rousse a écrit :
Bonjour,

Si l’un ou l’une d’entre vous à des pistes pour résoudre le long
problème VBA suivant je suis à l’écoute.

Merci.

Lune Rousse


Chacune des cellules de E3 à Exxxx de la feuille TUTU contient un mot
associé à un hyperlien qui renvoi vers un dossier.

Je souhaite appliquer une macro à chacune des cellules pleines de la
plage E3 : E25000 pour obtenir le résultat suivant : (Le traitement
reste invisible pour l’utilisateur.)

Macro :

En VBA je clic sur l’hyperlien de la cellule E3, le dossier associé
s’ouvre.

Trois cas peuvent alors se présenter :

1 – La cellule E3 a déjà été traitée lors d’un travail précèdent. Cela
est visible car la cellule F3 contient un petit x. (Dans ce cas,
aucune action, je traite simplement la cellule suivante de la colonne
E de la feuille TUTU, ici E4).

2– Le dossier ouvert par l’hyperlien de E3 est vide, il peut contenir
d’autres dossiers mais il ne contient pas de fichier. Dans ce cas, je
mets simplement un petit x dans la cellule F3, et je traite la cellule
suivante de la colonne E de la feuille TUTU.

3 – Le dossier ouvert par l’hyperlien de E3 contient un ou des
fichiers. (Les sous-dossiers présents ne sont pas traités.)
Deux cas, « a » ou « b », sont alors possibles :

a- L’un des fichiers est un document *.eml et son nom contient au
moins les neuf premiers caractères de la cellule de départ (ici E3)
(exemple, si la cellule E3 contient : DÉSOXYRIBONUCLÉIQUE le fichier
*.eml peut se nommer « vecteur azotée et Désoxyribonucléotides dctp »

i. Dans ce cas il me faut rechercher dans le corps ou dans l’en-tête
du message le chiffre 20xx qui me donnera l’année d’envoi du message.
Ce chiffre sera alors posé dans la cellule G3 puisque je traite E3.
ii. Dans le corps du message je recherche une occurrence de texte par
exemple : «quaternion» si je la trouve ne fusse qu’une fois je mets un
petit x dans la cellule H3 puisque je traite E3 et je passe
directement à l’étape v sans réaliser les étapes iii et iv, sinon :
iii. J’ouvre toutes les pièces jointes au message *.eml (les *.doc,
*.docx, *.ppt, *.odt,*.pdf,*.xls, *.xlsx) et je recherche l’expression
«quaternion» dans ces pièces jointes. Si je la trouve ne fusse qu’une
fois je mets un petit x dans la cellule H3 puisque je traite E3.
iv. Si je n’ai pas trouvé l’ expression « quaternion» je mets un
petit x dans la cellule i3.
v. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

b- Il n’y a pas de fichier *.eml qui porte au moins les neuf premiers
caractères de la cellule de départ (ici E3). Dans ce cas :

i. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx présent dans le dossier ouvert par l’hyperlien, sans ouvrir
les documents présents dans les sous dossiers et je recherche
l’expression «20xx» correspondant au numéros de l’année écrite dans
ces documents. Ce chiffre sera alors posé dans la cellule G3 puisque
je traite E3.

Pour ce traitement s’il existe dans ce document les chiffres 2006,
2007 et 2005, on garde le chiffre le plus élevé, on le stock et on le
compare aux autres chiffres trouvés dans les autres documents pour ne
conservé que le plus élevé.
ii. J’ouvre tous les fichiers *.doc, *.docx, *.ppt, *.odt,*.pdf,*.xls,
*.xlsx et je recherche l’expression «quaternion» dans ces documents.
Si je la trouve ne fusse qu’une fois je mets un petit x dans la
cellule H3 puisque je traite E3.
iii. Si je n’ai pas trouvé l’ expression « quaternion» je mets un
petit x dans la cellule i3.
iv. La cellule E3 est maintenant traitée, je mets un petit x dans la
cellule F3, et je traite la cellule suivante de la colonne E de la
feuille TUTU.

Ouf j’ai fini !



Publicité
Poster une réponse
Anonyme