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 :

Problème Kill fichier dans TEMP


Sujet :

Macros et VBA Excel

  1. #21
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Si,
    ca devrait marcher car si ton programme PHP machin crée un test[1].xls car test.xls existe, c'est qu'il va à un endroit précis voir que test.xls existe.

    je te suggère donc avant de fermer ton .xls de sauver le Activeworkbook.path, et de l'utiliser pour la routine (dir, close, kill).

    Si ce n'est pa suffisant,
    tu peux utiliser dir pour te donner les sub-folders de ton répertoire temp commun, à savoir
    C:\Documents and Settings\F71922\Local Settings\Temporary Internet Files\Content.IE5
    et parcourir les subfolder 1 par 1 pour chercher test*.xls

    Exemple trouvé dans l'aide de dir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ' Display the names in C:\ that represent directories.
    MyPath = "c:\"    ' Set the path.
    MyName = Dir(MyPath, vbDirectory)    ' Retrieve the first entry.
    Do While MyName <> ""    ' Start the loop.
        ' Ignore the current directory and the encompassing directory.
        If MyName <> "." And MyName <> ".." Then
            ' Use bitwise comparison to make sure MyName is a directory.
            If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
                Debug.Print MyName    ' Display entry only if it
            End If    ' it represents a directory.
        End If
        MyName = Dir    ' Get next entry.
    Loop

  2. #22
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    En lisant ta réponse je vient juste de penser qu'il y a autre chose de diférent dans le chemin:
    C:\Documents and Settings\F71922\Local Settings\Temporary Internet Files\Content.IE5

    F71922 varie cela identifie l'utilisateur placé ou il est placé ça va pas merder?

  3. #23
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    ça va pas merder?
    Ah que oui !!!

    Mais comment tu fais alors pour trouver le fichier à traiter ?
    Je ne comprends plus rien à ton appli !!

    On ne peut pas simplement dire :
    1) je traite le fichier machin
    2) je récupére l'emplacement du fichier machin
    3) je ferme le fichier machin
    4) je tous les test*.xls de ce path
    5) Client suivant SVP !!!

    T'as essayé ?

  4. #24
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Moi aussi je ne comprends plus trops bien ce que tu me dit

    Mais d'aprés ce que je lis depuis le début je pense que je devrai trouver le code qui SAVE mon test[1].xls dans un répertoire autre que dans le Temp et le Killer là dedans
    Non????

  5. #25
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Mais d'aprés ce que je lis depuis le début je pense que je devrai trouver le code qui SAVE mon test[1].xls dans un répertoire autre que dans le Temp et le Killer là dedans
    Non????
    Ptét !!
    Mais qui à commencé : la poule ou l'oeuf ?
    Autrement dit : Le fichier excel est créé par ton PHP ou par excel ?

    Si c'est par ton PHP, on en revient à l'idée qu'il faut trifouiller dedans

    N'empèche, mon idée précédente n'est peut-être pas totalement .
    ca pourrait marcher :
    * traiter fichier
    * récupérer son chemin
    * fermer fichier
    * effacer tous les test*.xls de ce chemin ( enb espérant qu'ils n'a pas des sosies en attente à ce endroit sinon tu le tues juste lui)
    * et hop. quelqu'un d'autre à servir ?

    Dois te laisser dans ton jus....

    Gros boulot urgent.

    A+

  6. #26
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par fthem Voir le message
    Mais d'aprés ce que je lis depuis le début je pense que je devrai trouver le code qui SAVE mon test[1].xls dans un répertoire autre que dans le Temp et le Killer là dedans
    Non????
    Non !
    C'est la même chose avec un nouveau classeur, au départ lorsque tu ouvres un nouveau classeur il se nomme Classeur1, ensuite quoi que tu fasses avec ce classeur le prochain nouveau classeur que tu ouvriras s'appelera Classeur2 et ainsi de suite tant que...l'application Excel restera ouverte. C'est seulement après avoir quitté l'application que le compteur se remet à 0.

    Donc 2 possibilités :
    1. tu modifies ta macro afin d'initialiser une variable à l'ouverture de ce classeur "test"
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      Dim wb As Workbook
      Set wb = ' Workbooks.Add ou Workbooks.Open je ne sais pas comment tu ouvres le classeur Test qui entre () ne serait pas par hazard un fichier modèle (*.xlt) ?
      wb.Close False
    2. tu quittes l'application Excel après la fermeture de ce classeur

    Pour moi la première solution est à envisager

  7. #27
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Si je comprends bien, en PHP tu utilises des instructions qui te permettes d'obtenir ton fichier test.xls.
    Tu ne précises pas de lieu de sauvegarde, c les fonction PHP qui envoie cela dans le tempory internet files.

    Dans ce fichier tu cliques sur un lien vers un classeur contenant ton gros bouton.
    Si à partir de cette macro tu arrives à récup les infos du premier classeur, c'est que tu as obtenu l'adresse du premier lors de l'ouverture du seconde par un propriété qui se souviens où est le premier classeur qui contenais le lien. Suis je clair ?
    La question est comment tu fait pour récupérer les infos de ton premier classeurs vers le deuxième ?
    Tu ne pourrais pas de la même façon obtenir son emplacement.

    Sinon dans la macro de traitment du deuxième classeur, tu n'as plus qu'à rechercher tous les fichier excel dans ContentIE5 et prendre celui qui à la dernière incrémentation, au moins tu ne seras plus obligé de supprimer le fichier excel !!!!

  8. #28
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    lorsque je suis sur mon site intranet je clique sur un bouton qui m'ouvre excel sur le PC du client (petit programme writeexcel qui permet cela) en envoyant dans les cellules des données de la BD + des liens que j'ai écris dans le php , ces liens pointes vers des classeurs excel Types qui se trouvent dans le serveur avec la BD , le client clique donc sur un de ces liens, et ouvre donc le 2ème fichier excel sur ce fichier excel il y a un bouton qui permet d'exporter les données du 1er excel vers celui ci (code VBA) à la fin de la procédure ce bouton disparait et la je voudrais rajoutter du code VBA qui permet de détruire ce fichier, qu'il n'en garde aucune trace sur le PC client.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si à partir de cette macro tu arrives à récup les infos du premier classeur, c'est que tu as obtenu l'adresse du premier lors de l'ouverture du seconde par un propriété qui se souviens où est le premier classeur qui contenais le lien
    Non le premier classeur est ouvert donc actif, j'écris donc du code VBA qui permet l'export de cellules d'un fichier vers un autre
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    val13 = Workbooks("test[1].xls").Worksheets("FDMexport").Range("K5").Value
    Workbooks("FCMO3.xls").Worksheets("FDM").Cells.Replace What:="IIII", Replacement:=val13, LookAt:=xlPart
    C'est clear or not

  9. #29
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut,

    si je te cite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    val13 = Workbooks("test[1].xls").Worksheets("FDMexport").Range("K5").Value
    Workbooks("FCMO3.xls").Worksheets("FDM").Cells.Replace What:="IIII", Replacement:=val13, LookAt:=xlPart
    tu sais trouver le nom complet et/ou le chemin de ton fichier test[1].xls, via
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Workbooks("test[1].xls").path
    Workbooks("test[1].xls").fullname
    mais j'ai l'impression que tu cherche autrechose ?

    Tu parles de premier et de deuxième classeur, je m'y perds un peu.

    Connais tu le nom de celui que tu veux supprimer ? Quel est-il ? Est-ce toujours le meme ? Sinon comment le connais-tu ?

  10. #30
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Je décompose:
    - 1er fichier excel ouvert depuis PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val13 = Workbooks("test[1].xls").
    - FEUIL de ce classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("FDMexport").
    - 2eme fichier excel ouvert en cliquant sur un lien se trouvant sur la FEUIL du 1er fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("FCMO3.xls").
    - Nom de la FEUIL du 2éme Fichier
    Yes or no?????????

  11. #31
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks("test[1].xls").path
    Workbooks("test[1].xls").fullname
    Kill (test[1].xls)
    Vous pensez que cela suffit??????????

  12. #32
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Il veut supprimer test[1].xls
    Puisque les deux classeurs sont ouverts en même temps dans l'application, depusi la macro de FCMO3.xls tu récupère le path de test[1].xls avec FullName.
    Puis tu ferme test[1].xls, et ensuite tu détruis le fichier à l'aide du chemin que tu as récupéré.

    Essayes, normalement cela devrait marcher.

  13. #33
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je peux me tromper mais mon intuition me dit que vous allez encore tourner en rond un bon moment...!

    Comme je l'ai précisé précédemment, d'après ce que j'ai compris le fichier Test est un fichier modèle
    ces liens pointes vers des classeurs excel Types
    raison pour laquelle ce fichier devient Test1 à la première ouverture puis Test2, Test3, etc... et sera à nouveau Test1 lorsque l'application Excel aura été fermée, ce qui remet les compteurs à 0.

    Lorsqu'on ferme ce fichier sans le sauvegarder il n'existe pas sur le disque dur, hormis dans les fichiers temporaires créés par Windows.
    N'existant pas, il va être difficile de le supprimer...!

  14. #34
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par fthem Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks("test[1].xls").path
    Workbooks("test[1].xls").fullname
    Kill (test[1].xls)
    Vous pensez que cela suffit??????????
    Non !
    Quand ton fichier est ouvert, tu mets quelque part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomFich = Workbooks("test[1].xls").fullname
    Et quand tu as fini avec, tu le fermes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks("test[1].xls").close false 'false puisque tu veux le supprimer et donc inutile de l'enregistrer
    DoEvents ' pour laisser le temps au système de fermer le fichier
    Kill NomFich 'détruit le fichier à fermer... Ouf !
    Bonne journée
    Re-Ouf !

  15. #35
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'ai compris le fichier Test est un fichier modèle
    test[1].xls n'est pas un fichier modèle.
    j'ouvre excel en nommant le fichier "test.xls" et la feuile "FDMexport" sur le poste client depuis le code php grace au programme "write excel" et j'écris les données de la BD dans les cellules de cette feuilles
    FCMO3, lui est un fichier type que j'ouvre en cliquant sur un lien que j'ai écrit dans la feuille FDMexport

  16. #36
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Citation de Fring.
    Je peux me tromper mais mon intuition me dit que vous allez encore tourner en rond un bon moment...!

    Comme je l'ai précisé précédemment, d'après ce que j'ai compris le fichier Test est un fichier modèle


    Lorsqu'on ferme ce fichier sans le sauvegarder il n'existe pas sur le disque dur, hormis dans les fichiers temporaires créés par Windows.
    N'existant pas, il va être difficile de le supprimer...!
    A mon avis il veut faire "opération propre", mais cela n'a pas trop de sens.

  17. #37
    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
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par fring
    Lorsqu'on ferme ce fichier sans le sauvegarder il n'existe pas sur le disque dur, hormis dans les fichiers temporaires créés par Windows.
    N'existant pas, il va être difficile de le supprimer...!
    Je n'avais pas lu...
    Comme le code que j'ai mis plus haut est correct, si fring a raison, et il a certainement raison, mon code provoquera une erreur "Fichier inexistant".
    Et, fthem, là tu auras ta réponse et tu pourras supprimer mon code

  18. #38
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 255
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NomFich = Workbooks("test[1].xls").fullname
    DoEvents 
    Kill NomFich
    Je vient d'essayerça, mais mon fichier se trouve toujours dans le TEMP mçeme en ayant fermé totalement excel

    par contre, j'ai renommé mon fichier test.xls en acrboimport.xls(nom peu commun pour éviter les doublons), il se passe la même chose, je retrouve toujours acrboimport[1].xls dans le TEMP même avec excel complètement fermé mais par contre avec la vingtaine d'essais que je vient de faire même si il apparait dans le TEMP, il ne m'ouvre pas de acrboimport[2].xls

    Si ça reste comme ça ça me va mais c'est à n'y rien comprendre

  19. #39
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Points : 5 537
    Points
    5 537
    Par défaut
    Ton WorkBooks n'esiste pas encore ...
    C'est un FICHIER, que tu dois zigouiller dans TEMP, pas un classeur

  20. #40
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    kill est une fonction d'excel ou c toi qui l'a crée ?
    si c l 2eme cas peux tu montrer le code ?

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

Discussions similaires

  1. Problème lecture fichier dans une arborescence de dossiers
    Par africanwinners dans le forum Langage
    Réponses: 5
    Dernier message: 05/12/2014, 13h59
  2. Réponses: 18
    Dernier message: 22/08/2014, 17h35
  3. Probléme création fichier dans un script
    Par nicowax dans le forum Unix
    Réponses: 5
    Dernier message: 15/01/2009, 14h19
  4. Problème de fichiers dans les dossiers de mes bases
    Par grinder59 dans le forum SQL Procédural
    Réponses: 0
    Dernier message: 20/07/2007, 21h14
  5. Réponses: 2
    Dernier message: 01/06/2004, 13h47

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