Abc
-
Modifié par Abc le 30/09/2015 à 15:06
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
1 oct. 2015 à 15:38
Bonjour,
Etant en stage actuellement dans une entreprise, je souhaite automatiser un peu mon travail. Je pars pour cela d'une macro déjà existante (bien complexe en passant). Je dois l'appliquer à tous les fichiers d'un répertoire mais j'ai du mal car celle-ci utilise un application.filedialogue.
Le principe est de se placer dans notre fichier final avec une mise en forme prédéfinis, on lance la macro, elle nous demande de sélectionner le fichier à partir duquel elle va rechercher les informations et va finalement tout mettre en page (création d'onglets, récupération de données etc...). J'ai donc essayer de l'automatiser comme cela :
Sub lancer_une_macro_dans_tous_les_fichiers_dun_dossier_aaa() Dim Rep As String, FichS As String, FichD As String Rep = "\\nom-du-serveur.net\Test en situation réel\2\" FichD = ActiveWorkbook.Name FichS = Dir(Rep & "*.xls*") Do While FichS <> "" Workbooks.Open FichS Set xlBook = ActiveWorkbook FichD.Activate Call Macro_Lettre_Interco_4 Workbooks(FichS).Close FichS = Dir Loop End Sub
La ligne en gras me donne l'erreur 1004 : fichier introuvable. Cependant elle me donne le nom du fichier (qui n'est pas présent dans la macro). Pour moi il me parait donc logique que la macro ait bien trouvé mon fichier...
Si quelqu'un à des pistes je suis preneur.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 30 sept. 2015 à 18:37
Que tu "t'en serves" ou pas, cette ligne provoque une erreur !
1) Prends s'il te plait l'habitude de ne montrer ici que le code dont tu te sers.
2) quelle est la ligne d'erreur ?
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 30 sept. 2015 à 19:22
Et (bien sûr, juste pour montrer que tu ne sais pas que copier/coller) tu as pensé à vérifier ce que contenait FichS, juste avant de tenter de l'ouvrir ?
Alors : dis-nous : que contient donc cette variable à ce moment-là ?
Rep contient le chemin du répertoire ou se trouvent tous mes fichiers, la deuxième partie va prendre tous les fichiers ayant une extensions xls, xlsx, xlsm etc... (il va les prendre tous mais un par un si je ne m'abuse, c'est pour ça qu'on a une boucle loop)
Je me demandais justement si l'erreur pouvait venir du fait que le chemin du répertoire est trop long et qu'il se situe sur un serveur ?
Mais comme dit j'utilise quasiment la même macro sur des fichiers situés presque au même endroit et je n'ai aucun soucis...
Ta réponse ne répond absolument pas à ma question !
Je ne t'ai pas invité à dire ce que tu espérais que contienne la variable FichS, mais ce qu'elle contient DE FAIT ! (une chaîne de caractères, donc).
Bis repetita : que contient-elle ?
Si tu ne comprends pas cette question simple (dire quelle chaîne de caractères contient de fait une variable), pardonne-moi, mais je cède ma place à d'autres ... (trop âgé et usé pour accepter de continuer sur de telles "bases". Le "minimum" n'est pas là...).
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Sinon pour information, le fait de venir demander de l'aide sur un forum est justement du au fait qu'on ne sait pas tout. De plus pour ma part je n'ai pas de formation informatique, je met le nez dans les macros car on me le demande et que je trouve cela intéressant. Ce n'est pas la première fois que je poste et que je me fais remballer gentiment par tes soins.
Si tu viens sur un forum pour dire aux personnes qu'ils n'ont pas toutes les bases qu'ils devraient avoir alors que toi tu les as, félicitation, tu fais sans doute partie des meilleurs.
Sinon tu peux m'aider à résoudre mon problème concrétement au lieu de me faire passer un test.
De plus il me parait juste naturel que "fichS" contient une variable, désolé si je ne connais pas les terme précis mais comme dit plus haut je ne suis pas de formation informatique.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 1/10/2015 à 11:52
C'est une plaisanterie ou quoi, là ?
Tu ne sais pas lire le contenu d'une variable en mode debug ?
Tu ne sais pas non plus, si tu ne sais pas utiliser le debug, l'afficher à l'aide d'une simple msgbox ?
Ce sont là des gestes très élémentaires, y compris et surtout pour un débutant de chez débutant !
Ne pas les connaître signifie que tu veux brûler les étapes, y compris celles de tout premier niveau .. et que tu penses que développer est "ramasser" du code sur le net, le copier, le coller ... et demander qu'on le corrige ...
Mais tu veux ... développer ...
Bonne chance
EDIT et pour ton information : la connaissance du contenu de ta variable fichS était et est indispensable à la découverte de la raison de ton message d'erreur.
Point barre
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 Modifié par ucfoutu le 1/10/2015 à 21:31
ce que t'aurait très précisément permis de découvrir depuis longtemps un simple
msgbox FichS
l'erreur aurait alors été très "visible". Elle aurait d'ailleurs pu être autre ...(par exemple et entre autres : aucun fichier correspondant au critère et donc fichS aurait contenu "")
Bref ...
Au passage : le deuxième "*" dans FichS = Dir(Rep & "*.xls*") pourrait un jour être une autre source d'erreur. Si par exemple ta version de Office était inférieure à celle utilisée sur le répertoire ouvert.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.