VBA création de dossiers dans windows

Bonjour

Evidemment que cela fonctionne très bien quand il y a le chemin d'accès au fichier dans le lien hypertexte... puisque le fichier exemple fourni était saisie de cette manière....

par contre je n'ai rien compris au message précédent....

pourrais tu expliquer un peu plus ...

d'après ce que je comprend du code fournit tu dois selectionner un fichier dans ton arborescence de fichier et renseigné dans un inputbox pour mettre le nom que tu souhaite affiché sur le lien hypertexte...

mais je n'ai pas compris la demande....

désolé

Fred

Oui c'est à ça que me sert cette macro, donc je me retrouve avec des liens Hypertextes renommés, du genre ndc000001 ou MOP28012018.

J'ai trouvé cette macro "simple" alors que je cherchai un moyen de faire un drag and drop directement depuis une messagerie par exemple. Mais je n'ai rien trouvé de concret, des pistes par autohotkey mais pas eu le temps de creuser.

Le but est de simplifier un max pour des néophytes (bien pire que moi ) j'ais des gros boutons dans un formulaire, ca incrémente mon tableau, ça imprime différentes paperasses et grâce à ces 2 derniers jours ca archive dans des dossiers. Je suis en même temps en train de chercher pour enregistrer mes impressions en PDF dans les dossiers créés, et ensuite je m'attaquerais à l'envoi par mail. Il faut dire que je peux faire cette opération presque 100 fois dans la semaine.

.......je m'égare.

Donc ta macro ne peux pas récupérer les PV du tableau, puisque les Hypertexts sont renommés. Il faudrait trouver un moyen de chercher le chemin source tout en laissant les hypertextes renommés.

euhhh

Donc ta macro ne peux pas récupérer les PV du tableau, puisque les Hypertexts sont renommés. Il faudrait trouver un moyen de chercher le chemin source tout en laissant les hypertextes renommés.

c'est déjà le cas.... dans le fichier exemple fourni tes liens sont renommés et je récupère le chemin du fichier quand même....

capture

avec cette instruction :

Source = O.Cells(lg, col).Hyperlinks(1).Address

je récupère l'adresse du lien et non pas le contenu de ce qui est affiché dans la cellule....

fred

Ben oui, je viens de retourner sur ton fichier, c'est exacte.

Par contre j'ai pris ta macro, je l'ai mise dans mon classeur (comporte plusieurs feuilles) et ca ne fonctionne que quand il y a le chemin complet, j'ai testé avec et sans sur 2 cellules différentes sur le meme lancement de macro .

Là je comprend pas.

Fais un extrait de ton fichier globale avec 2/3 lignes pour lesquelles la macro ne fonctionne pas.... car sans avoir, perso j'ai du mal a comprendre ce qui ne va pas..

Fred

Je viens d'épurer mon tableau, il y a beaucoup d'infos que je ne peux pas transmettre. Donc j'ai tout effacé.

La macro principal est dans le module 8. Elle renvoie à l'impressions d'autres feuillets que j'ai aussi effacé.

le principe est un formulaire dans la feuille saisie.

Quelques lignes sont cachées vers les lignes 36/45

La ligne 39 recoit toutes les informations du formulaire. C'est elle qui renvoie ces infos vers les feuilles à imprimer.

Avant d'etre éffacée elle est collé dans le tableau.

La macro comprend différentes formules qui ont perdus leurs sens puisqu'il n'y a plus de références. Mais cela génère des numéros issus d'autres tableau.

Les boutons lancent les macros pour attacher les PJ et le gros bouton lance la macro principale.

Voila pour les grandes lignes.

Il faudra renomer le fichier en enlevant " - Copie"

Merci pour ton aide.

J'ai tenté d'annoter la macro pour quelle soit plus compréhensible.

Il faut dire que je travail dessus depuis quelques mois.

J'ais glissé ta macro dedans.

moi ce que je voulais c'est 2/3 lignes déjà remplies avec tes liens hypertexte qui ne marche pas....

j'ai ouvert rapidement ton fichier et il n'y rien dedans.... et franchement la macro dans le module 8 pic les yeux..... macro faite par l'enregistreur de macro... avec des select dans tous les sens....

si je peux te conseiller quelque chose déjà c'est de simplifier ton code par exemple remplacer

Range("E8").Select
    Selection.Copy
    Range("A39").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

par

    Range("A39") = Range("E8").Value

ou encore mieux :

    [A39] = [E8].Value

et ensuite je le répète fournir un fichier exemple comme celui que tu a donner au début du post avec des lien hypertexte donc la récupération du nom de fichier ne marche pas... car j'ai toujours pas compris ce qui ne marche pas....

fred

et autre exemple remplacer

Range("G14").Select
    Selection.ClearContents
    Range("E14").Select
    Selection.ClearContents
    Range("F14").Select
    Selection.ClearContents

par

[E14:G14].clearcontents

et si tu as plusieurs zone fixes a effacer tu peux le faire d'un seul coup avec par exemple 2 plages + 1 cellule

[E14:G14,E12:G12,H15].ClearContents

en si tu veux travailler sur plusieurs feuilles :

sheets("saisie").[E14:G14,E12:G12,H15].ClearContents
sheets("Toto").[E12:G50].clearcontents

fred

Haha je me doutais de la réponse, oui ca pique les yeux, et pourtant, je l'ai déjà simplifié. Mais quand on connaît pas trops et que ca marche.....

Je vais encore épurer, c'est vrai à l'époque je ne connaissais pas cette façon de faire.

    Range("A39") = Range("E8").Value

Pour ce qui est des pièces jointes, comment te les transmettre en même temps ?

Je veux bien mettre l'exemple dans le tableau, mais si je te met pas les pièces jointes. Comment ta macro pourra aller les chercher ?

Je me suis dit que tu pouvais tester avec des PJ chez toi?

Attention quand même moi j'ai vraiment les dossier qui ne sont pas effaçable. Je les ai passé a un scan "recuva" bien que vide, ils serait "overwrité"...

regarde les propriétés du dossier si il n'est pas en lecture seule.... et as tu essayé de redémarré ton PC ???

pour les fichiers si tu veux fais moi un exemple avec ou 1 ou 2 lignes compresser (pour garder l'arborescence) et donne les en message privé si tu ne veux pas que tout le monde puisse voir le contenu des fichiers...

fred

Voila je viens de refaire le test

Les dossiers sont créés mais les seul la PJ photos avec le chemin complet est trouvée.

Je t'ai mis l'exemple et 3 PJ

Bonjour,

ce n'est pas le coeur de ton problème mais pour créer les dossiers plutôt que de générer une erreur et la traiter tu peux faire en testant ainsi :

rep = "D:\tmp\test\"
If Dir(rep, vbDirectory) = "" Then MkDir rep

eric

PS : 15 modules c'est 14 de trop en l'état...

Qui a envie de tout fouiller dans l'optique de t'aider ? Beaucoup doivent refermer et passer au suivant.

Perso je n'ai pas eu le courage d'aller voir si ma contribution était toujours d'actualité.

Salut Eriiic, oui effectivement 15 modules c'est beaucoup, je vais réduire tout ça. Ce sont des bon de macro pour arriver à faire ce que je veux. Seul le module 8 compte vraiment.

Et puis demain je réduit le code pour l'alléger.

Et oui ta contribution est plutôt à la base de mon fichier, tu ne pourras pas la voir puisque j'ai tout enlevé pour passer le fichier.

Encore merci pour cette histoire de TCD, je ne comprennait pas à l'époque, ca m'aide énormément tout les jours.

Je m'y remet demain.

Bonne soirée Messieurs.

Re bonsoir

bonsoir eric

tu n'as pas l'impression que ton lien hypertexte est fait de manière différente dans ta colonne V ????? par formule en l’occurrence....

capture

ce qui est complètement différent de la méthode clic droit dans une cellule ajouter un lien hypertexte....

donc normal que cela ne fonctionne pas..... c'est pas du tout le même principe....

si seulement le fichier exemple de départ était réaliste par rapport à ta demande.......

donc voici la dernière contribution pour moi sur ce sujet

bonne soirée

fred

12exemple-3.xlsm (26.42 Ko)

Et oui ta contribution est plutôt à la base de mon fichier, tu ne pourras pas la voir puisque j'ai tout enlevé pour passer le fichier.

Heuuuu, tu es sûr que tu as lu et compris ce que j'ai écrit au-dessus ???

Je te parlais de la création des dossiers sans traitement d'erreur...

Éric j'ai suivi ton conseil.dans la dernière proposition que j'ai proposé

Fred

Ok

C'est surtout que j'ai l'impression que sweetmo lit 1 ligne/ 5

Wow Wow Wow, bonsoir messieurs.

C'est un lynchage en règle là..... appelez les

Non sérieusement, j'aurais peux être due mieux m'expliquer, mais oui effectivement j'ai une grosse macro bien pourrie fait avec l'enregistreur comme un débutant (que je suis d'ailleur)

J'ai voulus t'expliquer cette histoire de copie d'hypertexte différent de la normale, c'est pour ca que j'avais mis le code la macro...... et puis je ne lis pas 1 ligne /5 Eriic, j'ai juste abordé 2 problèmes en même temps. Cruelle erreur de ma part puisque vous allez beaucoups plus vite que moi dans la compréhension.

Bon quoi qu'il en soit, désolé si je t'ai fait perdre du temps, mais grâce à ca, j'ais vu une macro que je vais pouvoir comprendre, la dernière est bien plus compliquée. et avec la reprise de la semaine, j'ai pas eu le temps de vraiment regarder.

Et aussi merci, grace à vous déjà j'ai avancé, je vais en plus épurer la macro comme tu m'as dit et virer toutes celles qui ne me servent plus, je m'y met dessuite....ma macro n'en sera que plus digeste.

Donc don't worry je ne met pas le bouton résolu. Je reviens vers vous plus tard dans la semaine ou le week end......si tant est que votre grande magnificence veuille bien tapoter la tête d'un gros newbie et alors viendra en fond, une musique fraternelle, et vous pourrez apercevoir ainsi dans mes yeux tout brillants d'émotion, la fierté d'avoir gravis la montagne. Pour le moment je me sent en sens inverse dans un escalator avec des grandes échasses.......... j'ai pas d'équilibre, je vois les choses de loin, et ca va trop vite.

Rechercher des sujets similaires à "vba creation dossiers windows"