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 :

Macro sur PC, Fichier sur réseau


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut Macro sur PC, Fichier sur réseau
    Bonjour,

    Après avoir réussi à créer une macro avec l'aide de jfontaine, je me suis rendu compte que tous les tests ont été fait sur un PC avec le fichier en question et la macro en local aussi.
    Cependant, les fichiers qui doivent être ouverts se trouvent en réalité sur le réseau et chaque mois ce fichier sera mis avec le même nom mais dans un répertoire différent (par nom du mois). Lorsque je clique sur un de ces fichiers (sur le réseau), je reçois un message d'erreur, bien évidement, de type 1004 ou Excel n'est pas autorisé à accéder à ce répertoire...
    La question est donc quelle est la commande à utiliser lorsque la macros est sur le PC et le document dans un répertoire sur le réseau?
    Merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Bonjour,

    Peut-être en adaptant ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Dim Mois As String
        Mois = Format(Date, "mmmm") & "\"
        Workbooks.Open "\\Nom_Serveur\Nom_Partage\" & Mois & "fichier.xls"
    en remplaçant "Nom_Serveur" et "Nom_Partage" par leur valeur. Le nom du répertoire sera celui du mois en cours.

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Daniel bonjour,

    Merci de la réponse rapide.

    J’essayais. Le problème se présente au niveau la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open "\\Nom_Serveur\Nom_Partage\" & Mois & "fichier.xls"
    La partie "& Mois" va chercher le mois en cours et non pas un répertoire avec le nom d'un mois. Sur ceux, le fichier se trouve sur différents mois de l'année et il doit pouvoir être consulté. En principe donc le nom du fichier va changer.
    Mais alors, il faudrait comme savoir qu'il s'agit d'un fichier csv avec "," qui est transformé en ";" avec une macro comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'Ouvre le fichier CSV avec virgule
    Application.Workbooks.OpenText Filename:="C:\tmp\nomdufichier.csv", Comma:=True
    j'ai changé les deux lignes que tu propose au début et le chemin à partir de "C:\..."

    Une idée?

    Merci.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Je n'arrive pas à comprendre ce que tu veux. Peux-tu donner un exemple ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Daniel,

    Espère pouvoir être plus clair cette fois-ci.

    hier j'ai créé une macros comme suit car j'avais des fichiers en .csv qui sont en "," et qui doivent passer en ";" pour être lus ici en France.:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    'Ouvre le fichier CSV avec virgule
    Application.Workbooks.OpenText Filename:="C:\tmp\nomdufichier.csv", Comma:=True
    'Enregistre au format CSV avec séparateur system
    'ActiveWorkbook.SaveAs Filename:="C:\tmp\ownerByPeriod.csv", 'FileFormat:=xlCSV, local :=True
    'Ferme le classeur
    'ActiveWorkbook.Close False
    (La seule ligne active c'est la deuxième. Pour les autres il y a un apostrophe qui annule la ligne).
    Les tests ont été fait en local sur un PC mais le fichier .csv sera sur un répertoire partagé sur le réseau. Le nom du répertoire où se trouve ce fichier .csv porte les noms des mois de l'année .
    La solution que tu as proposé va chercher un dossier par rapport le mois en cours et ce dont j'ai besoin c'est que la macros puisse lire un document .csv qui va se trouver dans différents dossiers du même partage (finalement peut importe le nom du dossier, je crois que c'est là que j'ai créé la confusion).
    Voici le chemin qui sera utilisé de base:

    \\nomserveur\data\service\mes documents\nomdudossier (cest celui-ci qui change)\nomdufichier.csv

    Le fichier .xlsm avec la macros va se trouver sur un ou deux PC du réseau.

    N'hésite à me relancer si ce n'est pas clair.

    Merci.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Les lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fich = Application.GetOpenFilename("csv Files (*.csv), *.csv")
    if fich<>false then Workbooks.OpenText Filename:=fich, Comma:=True
    te permettront de choisir le dossier voulu.

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Daniel bonjour,

    tout d'abord, désolé pour revenir aussi tard, mais hier je n'étais pas disponible.
    En deuxième, merci, on s'approche:

    Si je laisse le lignes que tu as proposé tel quelles, et j'aoute uniquement *.csv après Filename (exemple ci-dessous):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    fich = Application.GetOpenFilename("csv Files (*.csv), *.csv")
    if fich<>false then Workbooks.OpenText Filename:=*.csv, Comma:=True
    il se passe la chose suivante:
    Celle-ci est la démarche que je fais pour ouvrir le fichier voulut:
    1. je vais sur le dossier mes documents qui pointe sur le réseau.
    2. je cherche le fichier à ouvrir et il s'ouvre avec le mauvais format, c'est dire en ",".
    3. je clique ensuite sur la macros et une fenêtre de Windows (ouvrir) avec le contenu du dossier mes documents (en Win7) me laisse encore une fois aller chercher le document que je vais ouvrir.
    4. Quand je clique sur le document, il s'ouvre correctement, c'est à dire avec le ";".

    qu'est-ce que je ne renseigne pas correctement?
    Par contre, cette démarche me permet d'ouvrir tout type de fichier csv qui se trouve dans le réseau... ce qui est déjà bien! mais je voudrais éviter la fenêtre d'"Ouvrir" qui redouble ma démarche d'ouverture du fichier. Suis-je assez clair?
    D'ailleurs, j’essaie de mettre le chemin réseau entre les deux flèches (<>), mais la macros m'indique qu'il y a une erreur sur la ligne.

    Merci de nouveau.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 207
    Points : 14 362
    Points
    14 362
    Par défaut
    Pourquoi est-ce que tu as modifié cette ligne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if fich<>false then Workbooks.OpenText Filename:=fich, Comma:=True

  9. #9
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 14
    Points : 3
    Points
    3
    Par défaut
    Comme expliqué sur mon dernier post, le chemin d'ouverture du fichier est trop long. Après test j'ai remis la ligne d'origine.

  10. #10
    Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut chercher un dossier dans un répertoir (réseau)
    bonjour,

    je cherche à avoir un macro ou une requête pour chercher un dossier X qui existe dans des dossiers et sous dossiers et le tout dans un seul répertoire (une adresse h:... )
    mon souhait si possible est d'avoir un macro qui me pose la question :
    - tapez le nom du dossier
    - je donne le nom et je valide
    il va chercher dans ce répertoire h: ( qui existe sur réseau et non sur le c
    - résulta : le lien du dossier

    c'est galère pour trouver un dossier et je perds beaucoup de temps à chercher et je n'arrive pas à indexer le répertoire avec windows

    merci pour votre aide

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Un fichier Csv avec une virgule comme séparateur d champs,c'est le format américain, et vue qu'il faut faut bricoler la base de registres pour le remplacer par un point-virgule! Autant dire que la virgule est l séparateur par défaut!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    With CreateObject("ADODB.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyRepertoire;Extended Properties=""Text;HDR=No;FMT=Delimited;"""
        txt =.Execute("select * from [Fichier#Csv]").GetString(, , ";", vbCrLf)
        .Close
    End With
    End Sub
    *txt va contenir ton Csv avec ; comme séparateur!
    *

Discussions similaires

  1. [XL-2013] Macro créant un fichier sur la base d'un modèle
    Par fabien.michel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/06/2014, 19h50
  2. Réponses: 1
    Dernier message: 30/12/2011, 09h20
  3. [Delphi 7] Question sur déplacement fichier sur icone..
    Par shell13010 dans le forum Langage
    Réponses: 5
    Dernier message: 14/07/2009, 17h52
  4. [Dates] Détails sur un fichier sur PC client
    Par _Fred_ dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2007, 07h43
  5. fopen sur un fichier en réseau local
    Par heddicmi dans le forum Langage
    Réponses: 6
    Dernier message: 12/01/2006, 17h32

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