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 :

[VBA-E] Masquer l'ouverture des fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut [VBA-E] Masquer l'ouverture des fichiers
    Bonjour tout le monde
    j'ouvre plusieur fichiers dans un repertoire et j'analyse la valeur d'une case
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    stFichier = Application.GetOpenFilename
       With Application.FileSearch
       .NewSearch
       .LookIn = chemin(stFichier)
       .Execute
        On Error Resume Next
          For Each f In .FoundFiles
          Workbooks.Open f
       Select Case activeworkbooks.Sheets(1).Range("g9")
     .... et la suite.
    ça marche très bien mais je n'aime pas voir les fichier s'ouvrir (screenupdating ne suffit pas à masquer ce mouvement). et je ne sais pas comment arriver a sortir le nom de fichier qui peut etre completement aléatoire. en fait, j'ouvre tout les fichiers excels présents dans le repertoire, parce que justement, je ne connais pas le nom du fichier.
    j'ai f qui est le chemin complet et qui se termine par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .....\fichier cible.xls
    et je voudrais parvenir a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Select Case  Workbooks("fichier cible.xls").Sheets(1).Range("g9")
     ou select case workbooks("fichier cible").Sheets(1).Range("g9")
    , mais j'ai rien vu qui puisse extraire juste le nom du fichier. alors peut etre avec les fonction de traitement de chaine de caractere, mais je gere pas trop.
    je voudrai réussir a lire dans le fichier fermé, ou au moins , qu'il reste en arriereplan. j'ai cherché sur le forum et les faq,notement celle qui traite de transformer excel en mini base de donnée, mais à ce que j'en ai compris, elle suppose d'installer des bibliotheques, or mon projet va aller sur d'autres bécanes, donc je veux utiliser excel standard.
    voila

  2. #2
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Hello,

    Tu peux essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Truc = Right(TonString, Len(TonString) - InStrRev(TonString, "\"))
    où :
    -Truc est ton résultat
    - Right : extrait la partie droite d'une chaine de caractère (tu spécifies la position)
    - Len : longueur de la chaîne
    - InstrRev : renvoie la position d'un caractère (ici "\") dans une chaine de caractères
    - TonString : attention je ne suppose pas que tu portes un string c'est juste ta chaîne de caractères

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    j'ouvre plusieur fichiers dans un repertoire et j'analyse la valeur d'une case...
    ...ça marche très bien mais je n'aime pas voir les fichier s'ouvrir (screenupdating ne suffit pas à masquer ce mouvement)
    SilkyRoad a décrit une méthode intéressante qui permet de travailler sur des fichiers fermés.
    A+

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    merci cWain, ça marche bien ton truc. j'ai rajouté une couche pour obtenir le nom sans l'extention

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    truc = Right(f, Len(f) - InStrRev(f, "\"))
     fichier = Left(truc, Len(truc) - 4)             ' extraction du nom du fichier
    malheureusement ça ne suffit pas a faire marcher mon usine
    que j'ecrive
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
             u = Workbooks fichier.Sheets(1).Range("g9")
    ou         u = Workbooks truc.Sheets(1).Range("g9")
     
    ou        u = Workbooks ("fichier").Sheets(1).Range("g9")
    ou     u = Workbooks ("truc").Sheets(1).Range("g9")
    j'obtien toujour, l'indice n'apartiens pas à la selection.
    pour ouskel, j'ai essayé ce qui est marqué sur la faq, ça ne donne rien non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '  msgbox C:\Documents and Settings\mimi\dossier\excel\[ClasseurBase.xls]Feuil1'!$A$1
     
      ' boulaouane ='[clients.xls]feuil1'!$B$62
    et là pour le coup, ça ne passe meme pas le stade de l'écriture, le compilateur n'autorise pas

  5. #5
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Juste un petit commentaire vite fait (pas trop le tps là, désolé), j'ai vu que tu mettais "truc" entre guillemets, or Truc, si tu le définis , tu ne l'appelle plus à l'aide de guillemets, mais juste comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u = Workbooks (Truc).Sheets(1).Range("g9")
    Correction : dans ton cas c'est plutôt Fichier je crois

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    oui, tu as raison, mais si je ne l'avais pas marqué, en fait j'avais bie essayé sans guillemet aussi. mais ça marche pas. meme sur une commande simple
    genre workbooks(truc).open
    je plane

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par alsimbad
    ...
    ça marche très bien mais je n'aime pas voir les fichier s'ouvrir (screenupdating ne suffit pas à masquer ce mouvement). ...
    je comprends pas la ... moi cela se passe trés bien avec "screenupdating.."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub CommandButton1_Click()
     Dim wk As Workbook
     Dim i As Integer
     Application.ScreenUpdating = False
     Set wk = Workbooks.Open(Filename:=".....\fichier cible.xls", ReadOnly:=True)
     i = wk.Sheets("Feuil1").Range("G9")
     wk.Close False
     Set wk = Nothing
     Application.ScreenUpdating = True
     MsgBox i
     
    End Sub

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    Bravo bbil
    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
    Dim stFichier
     stFichier = Application.GetOpenFilename
       With Application.FileSearch
       .NewSearch
       .LookIn = cheminbalance(stFichier)
       .Execute
        On Error Resume Next
          For Each f In .FoundFiles
          Dim wk As Workbook
     Dim i As Integer
     Application.ScreenUpdating = False
     Set wk = Workbooks.Open(Filename:=f, ReadOnly:=True)
     'i = wk.Sheets("PAP CLTS").Range("G9") marche pas
    ' i = wk.Sheets(1).Range("G9")   marche pas
    ' i = wk.Worksheets("PAP CLTS").Range("G9")  marche pas, mais c'est curieux vu la ligne suivante qui fonctionne
     MsgBox wk.Worksheets("PAP CLTS").Range("G9")
     wk.Close False
     Set wk = Nothing
     Application.ScreenUpdating = True
     MsgBox i
    ça marche mais j'ai du essayer deux ou trois nuances avant de trouver celle qui marche. je vais developper sur l'ensemble du fichier, et je vous tiendrais au courant. je sais pas exactement a quoi ça tient, effectivement, le fichier s'ouvre et n'est pas visible. pour etre efficace, je dois voir si l'ensemble de la macro reste invisible, mais au cas ou, c'est super.merci les gars, avec celle la, je suis proche du but. bonne nuit a tous

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par alsimbad
    ça marche très bien mais je n'aime pas voir les fichier s'ouvrir (screenupdating ne suffit pas à masquer ce mouvement).
    Y'a pas de doute, tu te moques Je n'ai même pas essayé alors que je l'utilise systématiquement. J'ai cru à un phénomène particulier
    Maintenant je me souviens soudainement pourquoi je réclamais le code les autres fois
    Tu peux mettre résolu, phénomène !
    C'était quoi "ton" sujet de discussion que je le remette

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    j'utilisais ça. avoue que la nuance est faible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim stFichier
     stFichier = Application.GetOpenFilename
       With Application.FileSearch
       .NewSearch
       .LookIn = cheminbalance(stFichier)
       .Execute
        On Error Resume Next
        ScreenUpdating = False
          For Each f In .FoundFiles
          Workbooks.Open f
         Select Case ActiveWorkbook.Sheets(1).Range("g9")
    mais tel que c'est ci dessus, c'est absoluement pas efficace. et je ne sais pas pourquoi. alors peut etre que c'est lié à la suite da ma macro, ou a sa position par rapport a la boucle qui ouvre les trois fichiers, j'en saurais plus quan j'aurais developé le sujet.

  11. #11
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben tu t'est "bouffé" le Application ... devant screenupdapting... je suppose aussi que l'option explicit n'est pas activé sur ton projet ... et donc VB.. te crée une variable ScreenUpdapting ... qui n'as rien avoir ( à par le nom et le type ) à la propriété ScreenUpdapting de l'objet Application ...

    pour éviter de telle erreurs ...(nom de variables, portées des varibles..) rajoute
    en haut de tes modules et VB.. te signalera s'il y as lieu l'erreur au moment de la "compilation"...


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

Discussions similaires

  1. [VBA-E]Procedure d'ouverture de fichiers xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/03/2007, 09h09
  2. [VBA-E] masquer la barre des menus
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2007, 13h40
  3. Ouverture des fichiers .bin
    Par Fredo02 dans le forum Autres Logiciels
    Réponses: 16
    Dernier message: 11/01/2007, 18h26
  4. [VBA - Excel] Problème d'ouverture de fichier
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 10h55
  5. (VBA-E) Erreur sur ouverture de fichier
    Par Stutak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/08/2006, 15h11

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