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 :

controler en vba si fichiers sont ouverts et modifié ou non pour les sauvegarder ou non (sans message)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    association
    Inscrit en
    Janvier 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : association
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 5
    Points : 0
    Points
    0
    Par défaut controler en vba si fichiers sont ouverts et modifié ou non pour les sauvegarder ou non (sans message)
    bonjour
    j'ai des macros en fonctionnement qui appellent souvent plusieurs fichiers
    je veux controler s'ils sont ouverts et modifié ou non pour les sauvegarder ou non (sans message)
    s'ils ne sont pas ouverts les ouvrir

    dans une macro
    avoir le nom du fichier en variable
    Dim nomfichier As ???
    nomfichier="x:\chemin\nomfichier.xls"

    je souhaite tester si un "x:\chemin\nomfichier.xls" est dejà ouvert
    s'il a besoin d'être sauvegarder car modifié le sauvegarder sans mise a jour des liens et sans message

    s'il n'a pas ete modifié terminer

    s'il n'est pas ouvert l'ouvrir sans message de mise a jour des liens et sans message

    j'ai un debut mais probleme de fonctionnement et sans variable

    merci a tous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub a_0_test_ouverture_fichier_2internet()
    'le nom du fichier en variable
    'Dim nomfichier As ???
    ' nomfichier="x:\chemin\nomfichier.xls"
     
    'ActiveWorkbook.Save
    On Error GoTo 0
    estouvert = True
    'si non ouvert ouverture
    ouvre:
    If estouvert = False Then Workbooks.Open FileName:=.........., updatelinks:=0
    '====
    End Sub
    merci a tous

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, commence par Baliser ton code

    voir Code de macro pour vérifier si un fichier est déjà ouvert ou allégé dans la FAQ
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Option Explicit
     
    Sub TestFileOpened()
        ' Test to see if the file is open.
        If IsFileOpen("c:\Book2.xls") Then
            ' Display a message stating the file in use.
            MsgBox "File already in use!"
            ' Add code here to handle case where file is open by another
            ' user.
        Else
            ' Display a message stating the file is not in use.
            MsgBox "File not in use!"
            ' Open the file in Microsoft Excel.
            Workbooks.Open "c:\Book2.xls"
            ' Add code here to handle case where file is NOT open by another
            ' user.
        End If
    End Sub
     
    ' This function checks to see if a file is open or not. If the file is
    ' already open, it returns True. If the file is not open, it returns
    ' False. Otherwise, a run-time error occurs because there is
    ' some other problem accessing the file.
     
    Private Function IsFileOpen(filename As String)
    Dim filenum As Integer, errnum As Integer
     
        On Error Resume Next
        filenum = FreeFile()
        ' Attempt to open the file and lock it.
        Open filename For Input Lock Read As #filenum
        Close filenum
        errnum = Err           ' Save the error number that occurred.
        On Error GoTo 0        ' Turn error checking back on.
     
        ' Check to see which error occurred.
        Select Case errnum
            Case 0
                ' No error occurred.
                ' File is NOT already open by another user.
                IsFileOpen = False
            Case 70
                ' Error number for "Permission Denied."
                ' File is already opened by another user.
                IsFileOpen = True
            Case Else
                ' Another error occurred.
                Error errnum
        End Select
    End Function

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/10/2010, 11h36
  2. [VBA-E] Verifier si un fichier est ouvert
    Par peaceandloveman01 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/09/2007, 14h45
  3. [VBA-E]Afficher les fichiers excel ouvert et leur onglets dispo pour les ouvrir
    Par anubisigfrid dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/03/2007, 22h52
  4. [VBA-Office]Détecter la directorie du fichier Excel ouvert
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/12/2006, 13h53
  5. [VBA-E] Macro ouverture fichier déja ouvert
    Par bhaal76 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/12/2002, 14h30

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