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

WinDev Discussion :

Fichier excel pas réellement fermé [WD22]


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Fichier excel pas réellement fermé
    Bonjour à tous,

    Je suis actuellement de développer une partie d'application qui, en appuyant sur un bouton et à l'aide d'une procédure OLE, doit venir lire les informations d'une feuille Excel afin de les réimporter dans un fichier FIC.

    Jusque là, je n'ai aucun problème pour ouvrir mon fichier et sélectionner la feuille dont j'ai besoin. Pareil pour la lecture des informations (je vérifie pour le moment avec un Trace(xxx) que je remonte bien les informations voulues).

    Le problème se pose au moment de la fermeture du fichier. Pour le moment, je me suis arrêté à la fonction Trace() simplement pour savoir si ce que je voulais faire jusque là fonctionnant bien, le fichier s'ouvre, le trace m'affiche mes informations, mais la fermeture du fichier ne se fait pas "correctement" car je n'effectue aucune modification (à part la sélection de la feuille qui, je pense, doit faire penser à un changement du fichier par Excel) et j'ai pourtant la proposition d'enregistrer de nouveau le fichier.

    Savez-vous s'il y a un moyen de ne plus me retrouver face à ça ?

    Voici le code que j'appelle pour le moment :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    FichierSélectionné est une chaîne
    i est un entier
    sNomrep est une chaîne
    TestCHaine, TestChaine2, TestChaine3 est une chaîne
     
    HLitRecherche(variable,NOM,"repertoiresource")
    SI HTrouve ALORS
    	sNomrep = SansEspace(variable.VALEUR)
    FIN
     
    FichierSélectionné = fSélecteur(sNomrep+"Dossier Test", "", ...
    "Sélectionner un fichier", ...
    "Fichier Excel (*.xls)" + TAB + "*.xls" + RC + "Fichier Excel (*.xlsx)" + TAB + "*.xlsx", "xls")
     
    SI FichierSélectionné <> "" ALORS
    	Procedures_globales.xls>>workbooks>>open(FichierSélectionné)
            Procedures_globales.xls>>ActiveWorkbook>>Sheets("LANCEMENT")>>Select()
    		SI ErreurDétectée = Faux ALORS
    			POUR i=2 _A_ Procedures_globales_de_wana.xls>>ActiveSheet>>UsedRange>>Rows>>Count
    				TestCHaine = Procedures_globales_de_wana.xls>>Range("A"+(i))>>Value
    				TestChaine2 = Procedures_globales_de_wana.xls>>Range("D"+(i))>>Value
    				TestChaine3 = Procedures_globales_de_wana.xls>>Range("E"+(i))>>Value
    				Trace(TestCHaine + TAB + TestChaine2 + TAB + TestChaine3)
    			FIN
    			Procedures_globales.xls>>ActiveWorkBook>>Save()
    			Procedures_globales.xls>>ActiveWorkBook>>Close()	
    		FIN
    	FIN
    FIN

  2. #2
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Procedures_globales.xls>>Quit()
    libérer Procedures_globales.xls

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse

    C'est une solution que j'avais déjà testé par le passé, et quand je retourne sélectionner le fichier, j'ai un message d'erreur qui me renvoie sur la ligne appelant l'ouverture du fichier avec un "panneau sens interdit" qui m'affiche "N/A"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Comment faites-vous pour lire de nouveau un fichier excel? Comme vous travaillez avec des variables globales (alors que l'utilisation de variables locales vous auriez fait gagner du temps), il faut que vous re-instancier votre objet Procedures_globales.xls, en faisant un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Procedures_globales.xls = allouer un cExcel
    en s'assurant que Procedures_globales.xls soit déclaré à l'aide du mot clé dynamique
    Dernière modification par Invité ; 06/10/2017 à 11h28.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Après vérification (ce n'est pas un projet pris de zéro, je retape dans le code existant), la déclaration dans procedures_globales est faite comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xls est un objet Automation dynamique
    xls = ObjetActif("Excel.Application")
    xls = allouer un objet OLE "Excel.Application"

    Pour rouvrir le fichier excel, je clique sur le bouton, qui rouvre le sélecteur de fichier et rappelle la procédure de lecture

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas, mettre dans le code du bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Procedures_globales.xls = allouer un objet OLE "Excel.Application"

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Personnellement, je fais ActiveWorkBook>>Close(OLEFaux) ... Je ne sais plus à quoi sert ce paramètre, mais c'est ce que je fais systématiquement. Et je n'ai pas de souci.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Développeur Windev
    Inscrit en
    Octobre 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Windev

    Informations forums :
    Inscription : Octobre 2017
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Romulus001 : Ta solution me refaisait planter l'application lorsque je recliquais sur le bouton, en me refaisant la même erreur

    tbc92 : Effectivement, ça a l'air de fonctionner, je peux recliquer et relancer mon Trace autant de fois que je veux sans problème. Merci beaucoup

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

Discussions similaires

  1. un fichier excel pas terrible
    Par gregelec dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 21/05/2007, 14h15
  2. Access n'arrive pas à accéder à un fichier Excel
    Par ZeitnotZatopek dans le forum Access
    Réponses: 12
    Dernier message: 01/09/2006, 15h22
  3. [VBA-E]Importer des données de fichiers excel fermés
    Par bart64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/04/2006, 11h35
  4. Enregistrement fichier excel dans une base mysql (pas csv)
    Par morph12345 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/03/2006, 10h01
  5. Macro depuis word qui ferme un fichier excel
    Par max2245 dans le forum VBA Word
    Réponses: 7
    Dernier message: 13/01/2006, 09h57

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