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 :

Export et vérification fichier ouvert


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut Export et vérification fichier ouvert
    Bonjour à tous,

    Je dispose d'un bouton sur lequel je clic pour créer un fichier excel nommé "export"

    Si le fichier existe déjà, excel va automatiquement me demander si je veux le remplacer donc pas de soucis.

    voici le code:
    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
    Private Sub CommandButton1_Click()
        On Error Resume Next
        Workbooks("Export.xls").Activate
            If Err <> 0 Then
            MsgBox "Le Fichier Export.xls doit être ouvert sur votre poste, vous devez le fermer et relancer l'export"
            End If
                If Err <> 0 Then
                Dim exc As New Excel.Application
                Workbooks.Add
                Sheets("Feuil1").Select
                Sheets("Feuil1").Name = "Export_AccroSoft"
                ActiveCell.FormulaR1C1 = "Export réalilsé le " & Now
                ActiveCell.Font.Bold = True
                ActiveWorkbook.SaveAs Filename:="C:\Export.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
                End If
    End Sub
    Cependant si le fichier export est déjà créé ET ouvert du coup je cumule 2 erreurs. Et ma méthode resume next ne fonctionne pas.

    Comment puis-je résoudre cela?

    Merci pour votre aide.

    Elumastebit

  2. #2
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    bonjour du jour,

    Je lance une idée: est-ce qu'une méthode "On Error GoTo" pourrait fonctionner?

    Merci.

    elumatebit

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    peut-être une piste.

    1) Si tu veux voir si le fichier existe tu fais le teste avec DIR et tu agis comme tu le souhaites si vraiment tu veux confirmer quelquechose, mais à ta place je ne m'en préoccuperais pas car tu semble toujours utiliser le même nom en export. Tu peux te contenter de faire le DIR

    2) Si tu veux voir si le fichier est utilisé, tu essaies de le supprimer avec la méthode KILL juste avant ton saveas. Si le Kill échoue, alors tu sais qu'il est utilisé.

    En résumé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    res = DIR(nom fichier complet)
    if res <> "" then
      kill nom_fichier_complet
     'a toi de gerer l'erreur sur le kill comme tu le souhaites"
    endif
     
    ActiveWorkbook.SaveAs Filename:="C:\Export.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False

  4. #4
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Par défaut
    Bonjour Godzestla et merci pour ta réponse,

    J'ai donc modifié mon code avec tes infos:

    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
    Private Sub CommandButton1_Click()
        'On Error Resume Next
        ''Workbooks("Exports.xls").Activate
            'If Err <> 0 Then
            'MsgBox "Le Fichier Exports.xls doit être ouvert sur votre poste, vous devez le fermer et relancer l'export"
            'End If
                'If Err <> 0 Then
                'Dim exc As New Excel.Application
                Workbooks.Add
                Sheets("Feuil1").Select
                Sheets("Feuil1").Name = "Export"
                ActiveCell.FormulaR1C1 = "Export réalisé le " & Now
                ActiveCell.Font.Bold = True
                res = Dir(Exports.xls)
                If res <> "" Then
                Kill Exports.xls
                            End If
                ActiveWorkbook.SaveAs Filename:="C:\Exports.xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
                'End If
    End Sub
    J'ai une erreur 424 objet requis.

    Cependant j'ai réfléchi au fonctionnement de mon appli, et en fait je vais contourner ce problème puisque il n'y a aucun intérêt à enregistrer ce fichier. Ainsi c'est l'utilisateur qui l'enregistrera ou non et à l'emplacement qu'il souhaite et ainsi durant cet enregistrement il mettra le nom qu'il veut au fichier.

    Mon code devient simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     
                Workbooks.Add
                Sheets("Feuil1").Select
                ActiveCell = "Export réalisé le " & Now
                ActiveCell.Font.Bold = True
                Sheets("Feuil1").Name = "Export"
     
    End Sub
    C'est bien plus simple de cette manière et moins contraignant pour l'utilisateur.

    Merci à toi pour ton aide.

    Elumastebit

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Ok.

    Tu n'avais pa lu ce que j'ai écrit car ceci est faux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                res = Dir(Exports.xls)
    Regarde l'aide sur DIR.

    A+

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

Discussions similaires

  1. [VBA][Office 2003] Fichier ouvert depuis IE ou Word?
    Par nbaudraz dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 15h27
  2. tester si fichier ouvert
    Par nbelg27 dans le forum Access
    Réponses: 6
    Dernier message: 08/09/2005, 11h19
  3. Réponses: 5
    Dernier message: 13/05/2005, 13h26
  4. Nombre maximum de fichiers ouverts par processus
    Par galinoo dans le forum Windows
    Réponses: 3
    Dernier message: 27/10/2004, 18h47
  5. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 18h47

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