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 :

Pb gestion erreur lors ouverture fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Pb gestion erreur lors ouverture fichier excel
    Bonjour !

    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
    Private Sub CommandButton3_Click()
     
    a = Selection.Value
    b = Left(a, 2)
    c = Worksheets("BD").Cells(3, 3)
    d = Worksheets("BD").Cells(3, 4)
    e = Worksheets("BD").Cells(3, 5)
     
    If b = "ab" Or b = "ac" Or b = "ad" Or b = "ae" Then
    On Error GoTo GestionErreur
    Workbooks.Open ("W:\A.xls")
    Workbooks("A").Worksheets("Pres").Activate
    Workbooks("A").Worksheets("Source").Cells(5, 37) = a
    Workbooks("A").Worksheets("Cal").Cells(18, 4) = c
    Workbooks("A").Worksheets("Cal").Cells(21, 4) = d
    Workbooks("A").Worksheets("Cal").Cells(22, 4) = e
    Exit Sub
    End If
     
    GestionErreur:
    If Err.Number = 55 Then
    ' Vérifie que l'erreur n'est pas dû au fait que le fichier est déjà ouvert
    Workbooks("A").Worksheets("Pres").Activate
    Workbooks("A").Worksheets("Source").Cells(5, 37) = a
    Workbooks("A").Worksheets("Cal").Cells(18, 4) = c
    Workbooks("A").Worksheets("Cal").Cells(21, 4) = d
    Workbooks("A").Worksheets("Cal").Cells(22, 4) = e
    Exit Sub
    Else
    MsgBox "bouh"
    Workbooks("A").Worksheets("Pres").Activate
    Workbooks("A").Worksheets("Source").Cells(5, 37) = a
    Workbooks("A").Worksheets("Cal").Cells(18, 4) = c
    Workbooks("A").Worksheets("Cal").Cells(21, 4) = d
    Workbooks("A").Worksheets("Cal").Cells(22, 4) = e
    End If
     
    End Sub
    Ce que je souhaite c'est si lors de l'ouverture du document A une erreur est générée, autre que "fichier déjà ouvert", une msgbox apparaissent. Or avec ce code, la msgbox s'ouvre dans tout les cas (fichier ouvert ou pas) ! Je souhaiterais alors votre avis pour savoir d'où viens mon erreur.

    Merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Je verrais plutôt ça de cette façon..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If b = "ab" Or b = "ac" Or b = "ad" Or b = "ae" Then
    On Error resume next
    Workbooks.Open ("W:\A.xls")
    On Error GoTo GestionErreur
     
    Workbooks("A").Worksheets("Pres").Activate
    Workbooks("A").Worksheets("Source").Cells(5, 37) = a
    Workbooks("A").Worksheets("Cal").Cells(18, 4) = c
    Workbooks("A").Worksheets("Cal").Cells(21, 4) = d
    Workbooks("A").Worksheets("Cal").Cells(22, 4) = e
    Exit Sub
    End If
    A+

  3. #3
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Ça dépend toujours tu type d'erreur. Par exemple, je viens de tester avec un classeur déjà ouvert et un classeur qui n'existe pas. Les deux génèrent une erreur numéro 1004.

  4. #4
    Membre averti Avatar de mordrhim
    Inscrit en
    Avril 2007
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 270
    Points : 314
    Points
    314
    Par défaut
    On testera ca siouplait ^^
    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
    51
    52
    Private Sub CommandButton3_Click()
     
        a = Selection.Value
        b = Left(a, 2)
        With Worksheets("BD")
            c = .Cells(3, 3)
            d = .Cells(3, 4)
            e = .Cells(3, 5)
        End With
     
        If b = "ab" Or b = "ac" Or b = "ad" Or b = "ae" Then
            On Error GoTo GestionErreur
            If Not FichierOuvert("W:\A.xls") Then  'Teste si le fichier est ouvert ou pas.
                Workbooks.Open ("W:\A.xls")
                With Workbooks("A.xls")
                    .Worksheets("Pres").Activate
                    .Worksheets("Source").Cells(5, 37) = a
                    With .Worksheets("Cal")
                        .Cells(18, 4) = c
                        .Cells(21, 4) = d
                        .Cells(22, 4) = e
                    End With
                End With
            Else
                MsgBox ("Fichier " & Chr(34) & "W:\A.xls" & Chr(34) & " déjà ouvert")
                With Workbooks("A.xls")
                    .Worksheets("Pres").Activate
                    .Worksheets("Source").Cells(5, 37) = a
                    With .Worksheets("Cal")
                        .Cells(18, 4) = c
                        .Cells(21, 4) = d
                        .Cells(22, 4) = e
                    End With
                End With
            End If
        End If
    Exit Sub
     
    GestionErreur:
        MsgBox ("Ya une erreur : " & Err.Number)
    End Sub
     
    Function FichierOuvert(Nom As String) As Boolean
     
        On Error GoTo Erreur
        If Not Application.Workbooks(Dir(Nom)).IsInplace Then
            FichierOuvert = True
        End If
        Exit Function
     
    Erreur:    'Une erreur survient si le fichier n'est pas ouvert car il ne trouve pas le classeur
    End Function

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci LeForestier ça fonctionne nickel ! Par contre, mordhrim le tien fonctionne aussi mais consomme beaucoup plus de temps.
    LeForestier, pourrais-tu m'expliquer pourquoi tu as le "on error goto" après ce qui risque de poser problème ?

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Beeh..,
    celui là c'est pour continuer ta détection d'erreur s'il y en a une autre
    et à ce moment afficher ton msgBox
    A+

Discussions similaires

  1. [POI] Erreur dans mon fichier Excel à l'ouverture
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 08/03/2012, 14h42
  2. Montrer userform lors ouverture fichier excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 08/11/2006, 15h20
  3. Execution macro lors d'une ouverture fichier excel
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/10/2006, 12h00
  4. [SQL Server 2000] erreur lors importation fichier excel
    Par Abydos Business Group dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/03/2006, 09h24
  5. activation macro lors d'une ouverture fichier Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/05/2005, 15h08

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