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 :

Message d'erreur fichier déjà ouvert [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut Message d'erreur fichier déjà ouvert
    Bonjour à tous,
    J'ai une macro qui me permet de copier des cellules d'une feuille "Montage" (du classeur "Calcul2") vers une feuille "Feuil1" (du classeur "Calcul1"). Parfois le classeur Calcul1 peut être ouvert. J'ai donc mis en place une gestion d'erreur pour que ma macro fonctionne même si le classeur est déjà ouvert sauf que j'ai une erreur et je n'arrive pas a mettre le doigt dessus malgré plusieurs modifications. J'ai besoin d'un oeil plus expert que le mien
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub export()
    Dim classeurA As Workbook
    Dim classeurB As Workbook
     
    On Error Resume Next
    Workbooks("Calcul1.xls").Activate
     
    If Err.Number <> 0 Then
     Application.Workbooks.Open "C:\Desktop\Calcul1.xls"
    End If
    On Error GoTo 0
     
    Set classeurA = Workbooks.Open("C:\Desktop\Calcul1.xls")
    Set classeurB = Workbooks("Calcul2.xlsm")
     
    m = classeurA.Sheets("Feuil1").Cells(Rows.Count, "A").End(xlUp).Row + 1
    For i = 1 To 500 Step 1
    If classeurB.Worksheets("Montage").Range("A" & i) <> 0 Then
        classeurB.Worksheets("Montage").Range("A" & i, "L" & i).Copy Destination:=classeurA.Worksheets("Feuil1").Range("A" & m)
    m = m + 1
    End If
    Next i
     
    MsgBox ("Exportation réussie")
    End Sub
    Merci à vous tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une autre façon d'accéder à un fichier avec la possibilité qu'il soit déjà ouvert :

    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
     
    Sub OuvertureFichiers(ByVal NomFichier As String, ByVal RepertoireFichier As String)
     
    Dim Wb As Workbook
    Dim WbDejaOuvert As Workbook
    Dim Continuer As Boolean
     
        Continuer = True
        For Each Wb In Workbooks
            Select Case Wb.Name
                Case NomFichier
                    Set WbDejaOuvert = Wb
                    Continuer = False
                    Exit For
            End Select
        Next Wb
     
        If Continuer = True Then
            Workbooks.Open Filename:=RepertoireFichier & "\" & NomFichier
        Else
            WbDejaOuvert.Activate
            Set WbDejaOuvert = Nothing
        End If
     
    End Sub
    Cordialement.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quand tu dis que le classeur1 peut parfois être ouvert, c'est ouvert par toi ou par un autre utilisateur ?


    voici quelques exemples de gestion de ces problématiques :

    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
     
    Sub shipuden64()
     
        Dim Wb As Workbook
        Dim Present As Boolean
     
        ' on cherche si le classeur est déjà ouvert dans l'instance
        For Each Wb In Application.Workbooks
            If Wb.Name = "Nom de ton classeur" Then
                Present = True
                Exit For
            End If
        Next Wb
     
        ' on gère soit son ouverture, soit son instanciation dans la variable Wb
        If Present = False Then
            Set Wb = Workbooks.Open("Chemin du fichier")
        Else
            Set Wb = Workbooks("Nom du fichier")
        End If
     
        ' on teste l'état de lecture seule
        If Wb.ReadOnly = True Then
            MsgBox "Fichier en lecture seule"
        End If
     
    End Sub

  4. #4
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2015
    Messages : 23
    Par défaut
    Bonjour à vous deux,
    Ouvert par moi même.

    Ca marche niquel j'ai opté pour le code de joe.levrai
    Merci à vous deux. Problème résolu

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

Discussions similaires

  1. Message d'erreur, fichier excel partagé - macros
    Par ilissnmiden92 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2014, 15h56
  2. [XL-2007] Ouvrir un fichier déja ouvert sans message d'erreur
    Par guigol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/07/2013, 09h18
  3. Mon message d'erreur : fichier non trouvé
    Par Go'Gaule dans le forum Débuter
    Réponses: 2
    Dernier message: 16/07/2011, 21h37
  4. Cybermut : message d'erreur fichier inexistant
    Par identique dans le forum E-Commerce
    Réponses: 1
    Dernier message: 20/01/2009, 07h55
  5. Message d'erreur : Fichier verrou trop important !
    Par chasseur37 dans le forum Bases de données
    Réponses: 8
    Dernier message: 06/09/2005, 10h34

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