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 :

Probleme compatibilité macro 2003 -2010


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut Probleme compatibilité macro 2003 -2010
    Bonjour à tous et à toutes.



    Donc je tente accèder aux données d'un fichier excel nommé "monClasseur.xls" qui sous Excel 2010 à un message demandant le mot de passe de ce fichier Excel.


    La même manipulation via la fonction ci -dessous établie sous excel 2003 ouvre le fichier sans demander le mot de passe.
    c'est donc une macro qui, normalement, ouvre le fichier "mpnClasseur.xls" et renseigne le mot de passe automatiquement(en parametre) par consequent cette macro bug sous Excel 2010.

    Que faudrait-il changer dans le code pour régler cela??


    Merci à tous et à toutes
    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
     On Error Resume Next
        Workbooks(monClasseur).Activate
        If Err.Number <> 0 Then
            Err.Clear
            rep= False
            Application.StatusBar = "Ouverture de la base Hibiscus choisie"
            Workbooks.Open Filename:=Chemin_serveur & monClasseur, Password:=motdepasse
            If Err.Number <> 0 Then
              Affiche = "il y a un probleme avec  " &monClasseur& Chr(10) & Chr(10) 
                             MsgBox( Affiche )
                Application.StatusBar = False
                End
            End If
        Else
            rep = True
        End If

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    As-tu essayé de bloquer les messages

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.DisplayAlerts = False
    'Ouverture du fichier
    Application.DisplayAlerts = True

    Autre piste, essai avec l'enregistreur de Macro, tu verras si la procédure diffère

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut
    Bonjour Qwazerty

    Le Application.DisplayAlerts = False doit il etre placé avant le On error resume next ?Idem pour Application.DisplayAlerts = true,juste avant la ligne de code suivant Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle ?


    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
     
     
    Sub test()
     
    On Error Resume Next
        Workbooks(Base_Hibiscus_reelle).Activate
        Application.DisplayAlerts = False
     
     
        If Err.Number <> 0 Then
     
            Err.Clear
            flag_base_en_ligne = False
            Application.StatusBar = "Ouverture de la base "
     
     
     
            'Ouverture du fichier
            Application.DisplayAlerts = True
            Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
     
     
     
            If Err.Number <> 0 Then
                msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _
                        & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez"
                Style = vbOKOnly + vbCritical + vbDefaultButton1
                Title = "       Message d'erreur"
                reponse = MsgBox(msg, Style, Title)
                Application.StatusBar = False
     
            End If
     
     
        Else
            flag_base_en_ligne = True
        End If
    End Sub

    Quand tu me dit avec l'enregistreur de Macro ,je ne comprends pas très bien?
    lorsque je code dans un module,je suis déja dans l'enregistreur de macro .

    Merci par avance.


  4. #4
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Il faudrait déjà essayer de remettre l'affichage des alertes après l'ouverture du fichier. Sinon, autant ne pas le mettre.

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Bonjour Zebre loup,

    Comme ceci (code ci-dessous) ?

    Par ailleurs ,tu penses que le fait de mettre les alertes à vrai ,ca règle le problème ci dessous :

    je tente accèder aux données d'un fichier excel nommé "monClasseur.xls" qui sous Excel 2010 à un message demandant le mot de passe de ce fichier Excel.

    La même manipulation via la fonction ci -dessous établie sous excel 2003 ouvre le fichier sans demander le mot de passe.
    c'est donc une macro qui, normalement, ouvre le fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "mpnClasseur.xls" et renseigne le mot de passe automatiquement(en parametre)
    par consequent cette macro bug sous Excel 2010

    Meme si il y a plus le message d'alerte ça conserverait le mot de passe Automatique?

    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
     On Error Resume Next
          
            Application.DisplayAlerts = False  
    
      Workbooks(monClasseur).Activate
    
        If Err.Number <> 0 Then
            Err.Clear
            rep= False
            Application.StatusBar = "Ouverture de la base"
    
             'OUVERTURE FICHIER 
            Workbooks.Open Filename:=monClasseur, Password:=motdepasse
    
           'MESSAGE D'ALERTE A VRAI 
           Application.DisplayAlerts = True  
    
          If Err.Number <> 0 Then
    
              Affiche = "il y a un probleme avec "&monClasseur                             
    MsgBox( Affiche )
                Application.StatusBar = False
                End
            End If
        Else
            rep = True
        End If

  6. #6
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je n'avais pas lu en détail ce que tu essayais de faire.
    Je suis assez étonné que ça ne marche pas, normalement Workbooks.Open est identique entre 2003 et 2010. Tu es sûr que le PWD est bien renseigné de la même façon dans tes 2 tests ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Bonjour Zebre Loup,

    Oui le mot de passe est bien renseigné dans les deux tests ?

    Il n'y aurait pas peut etre un test à faire pour les versions d'excel utilisées?

    Je sèche complètement..

    Si quelqu'un aurait une idée ,une piste ou une réponse j'achète

    Merci à tous et à toutes

  8. #8
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Je n'ai pas d'excel 2010 sous la main mais selon la syntaxe dans l'aide de Microsoft, ça devrait marcher. Le problème est peut-être ailleurs. Sensibilité à la casse ? Ou peut-être que quand tu fais le Activate au début, Excel 2010 essaie déjà de l'ouvrir (Je ne sais pas s'il y a des fonctionnalités intelligente du genre) ?

    Enfin, je laisse répondre ceux qui ne sont pas restés à l'époque des dinosaures.

  9. #9
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Re zebrer loup


    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
    Sub FonctionDeTest()
     
    On Error Resume Next
     
            Application.DisplayAlerts = False  
     
      Workbooks(monClasseur).Activate
     
        If Err.Number <> 0 Then
            Err.Clear
            rep= False
            Application.StatusBar = "Ouverture de la base"
     
             'OUVERTURE FICHIER 
            Workbooks.Open Filename:=monClasseur, Password:=motdepasse
     
           'MESSAGE D'ALERTE A VRAI 
           Application.DisplayAlerts = True  
     
          If Err.Number <> 0 Then
     
              Affiche = "il y a un probleme avec "&monClasseur                             
    MsgBox( Affiche )
                Application.StatusBar = False
                End
            End If
        Else
            rep = True
        End If
    End Sub

    Quand j'execute le code ci dessus, effectivement il rentre a vrai dans le deuxieme If et m'affiche Affiche = "il y a un probleme avec "&monClasseur

    Par contre lorsque j'execute le code sans la ligne Workbooks(monClasseur).Activate il n'affiche plus il y a un probleme ,cela signifie que ca fonctionne ...MAis je t'avouerai que je n'y comprends rien...
    Comment se fait-il qu'il n"y a plus l'erreur lorsque la ligne Workbooks(monClasseur).Activate est supprimée


    Merci à toi Zebre loup =)

  10. #10
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Alors, déjà, tu as mis des on error resume next sans on error goto 0, ce qui peut générer pas mal de soucis difficiles à maitriser.
    Sinon, je pense que l'on n'a rien résolu, c'est juste qu'il ne rentre pas du tout dans le traitement.

    Si tu veux tester si le classeur est déjà ouvert, plutôt que la gestion des erreurs, utilises plutôt une boucle sur les workbooks. Ensuite, on verra ce qui se passe.

  11. #11
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Re zebre loup

    j'ai changé la première condition If Err.Number <> 0 Then par If Err.Number = 0 Then il rentre dans ce IF et affiche apres ces deux lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
               Application.DisplayAlerts = True
    le classeur est ouvert

    Puis j'ai rajouté On Error Resume Next juste avant la 2 eme condition
    If Err.Number <> 0 Thenet il n'affiche plus le message d'erreur.

    Dans la premiere condition ,après le message le classeur est ouvert que j'ai ajouté volontairement ,j"'ai mis ces deux lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      For Each wkbBook In Application.Workbooks
    ' If wkbBook.Windows(1).Visible Then lCount = lCount + 1
    MsgBox "le nom du classeur est " & wbbBook.Name
     
    Next wkbBook
    mais il n'affiche jamais wbbBook.Name

    Soit il y a une erreur de synthaxe et c"'est peut etre résolu ou mon bricolage ne sert à rien ...

    Help

    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
    Sub test()
     
        Dim wkbBook As Workbook
        Dim lCount As Long
     
     On Error GoTo 0
     On Error Resume Next
       ' Workbooks(Base_Hibiscus_reelle).Activate
     
       Application.DisplayAlerts = False
     
        If Err.Number = 0 Then
           MsgBox "toto"
     
            Err.Clear
            flag_base_en_ligne = False
            Application.StatusBar = "Ouverture de la base Hibiscus choisie"
     
            'Ouverture du fichier
            'Application.DisplayAlerts = True
     
            Workbooks.Open Filename:=Chemin_serveur & Base_Hibiscus_reelle, Password:=PWH
               Application.DisplayAlerts = True
            MsgBox "le classeur est ouvert"
     
        For Each wkbBook In Application.Workbooks
    ' If wkbBook.Windows(1).Visible Then lCount = lCount + 1
    MsgBox "le nom du classeur est " & wbbBook.Name
     
    Next wkbBook
     
             On Error Resume Next
            If Err.Number <> 0 Then
                msg = "ATTENTION : problème avec la base " & Base_Hibiscus_reelle & Chr(10) & Chr(10) _
                        & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez"
                Style = vbOKOnly + vbCritical + vbDefaultButton1
                Title = "       Message d'erreur"
                reponse = MsgBox(msg, Style, Title)
                Application.StatusBar = False
     
            End If
     
        Else
            flag_base_en_ligne = True
     
        End If
     
    End Sub

  12. #12
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Essaie plutôt de t'inspirer de ce code. Et il faut que tu revois la gestion des erreurs car j'ai l'impression que tu n'as pas encore tout compris de ce coté là .

    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
    Public Sub OuvertureFichier()
        Dim wb As Workbook
        Dim baseOuverte As Boolean
        Dim nomBaseComplete As String
     
        nomBaseComplete = Chemin_serveur & Base_Hibiscus_reelle
     
        'On vérifie d'abord si le classeur est déjà ouvert
        baseOuverte = False
        For Each wb In Application.Workbooks
            If wb.Path = nomBaseComplete Then baseOuverte = True
        Next wb
     
        'Si le classeur n'était pas déjà ouvert, on l'ouvre
        If Not baseOuverte Then
            On Error Resume Next 'En cas d'erreur, on continue quand même
            Set wb = Workbooks.Open(Filename:=nomBaseComplete, Password:=PWD)
            If Err.Number <> 0 Then 'Si une erreur s'est produite à l'ouverture du fichier
                MsgBox "ATTENTION : problème avec la base " & nomBaseComplete & vbCrLf & vbCrLf _
                    & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez" _
                    & vbCrLf & vbCrLf & Err.Description _
                    , vbOKOnly + vbCritical, "Message d'erreur"
            End If
            On Error GoTo 0 'On remet le traitement d'erreur à la normale
        End If
    End Sub

  13. #13
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Re ,


    donc je viens d'executer le code ci dessous
    en ajoutant cette ligne MsgBox "classeur ouvert ",apres celle ci Set wb = Workbooks.Open(Filename:=nomBaseComplete, Password:=PWD)

    Donc le classeur n'etait pas deja ouvert mais il entre quand meme dans le 2 eme If et affiche l'erreur ....!

    Comment cela se fait -il ??


    Merci à toi

    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
    Public Sub OuvertureFichier()
        Dim wb As Workbook
        Dim baseOuverte As Boolean
        Dim nomBaseComplete As String
     
        nomBaseComplete = Chemin_serveur & Base_Hibiscus_reelle
     
        'On vérifie d'abord si le classeur est déjà ouvert
        baseOuverte = False
        For Each wb In Application.Workbooks
            If wb.Path = nomBaseComplete Then baseOuverte = True
        Next wb
     
        'Si le classeur n'était pas déjà ouvert, on l'ouvre
        If Not baseOuverte Then
            On Error Resume Next 'En cas d'erreur, on continue quand même
            Set wb = Workbooks.Open(Filename:=nomBaseComplete, Password:=PWD)
            MsgBox "classeur ouvert "
     
     
            If Err.Number <> 0 Then 'Si une erreur s'est produite à l'ouverture du fichier
                MsgBox "ATTENTION : problème avec la base " & nomBaseComplete & vbCrLf & vbCrLf _
                    & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez" _
                    & vbCrLf & vbCrLf & Err.Description _
                    , vbOKOnly + vbCritical, "Message d'erreur"
            End If
            On Error GoTo 0 'On remet le traitement d'erreur à la normale
        End If
    End Sub

  14. #14
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Le MsgBox "Classeur Ouvert", il faudrait le mettre après le On Error Goto 0, une fois qu'on est sûr que tout s'est bien passé. D'ailleurs j'ai oublié, mais il faudrait mettre un Exit Sub après le message d'erreur.
    Donc a priori, il y a bien un problème à l'ouverture. Que vaut le err.Description qui s'affiche dans la msgbox

  15. #15
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    Re,

    Donc j'ajoute apres On Error GoTo 0 ,le message box suivant: MsgBox "classeur ouver

    Puis apres le message MsgBox "ATTENTION ...se situant dans la Deuxieme condition,je met le Exit Sub

    je recompile et visiblement,il affiche toujours le message d'erreur ...



    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
    Public Sub OuvertureFichier()
        Dim wb As Workbook
        Dim baseOuverte As Boolean
        Dim nomBaseComplete As String
     
        nomBaseComplete = Chemin_serveur & Base_Hibiscus_reelle
     
        'On vérifie d'abord si le classeur est déjà ouvert
        baseOuverte = False
        For Each wb In Application.Workbooks
            If wb.Path = nomBaseComplete Then baseOuverte = True
        Next wb
     
        'Si le classeur n'était pas déjà ouvert, on l'ouvre
        If Not baseOuverte Then
            On Error Resume Next 'En cas d'erreur, on continue quand même
            Set wb = Workbooks.Open(Filename:=nomBaseComplete, Password:=PWD)
     
     
            If Err.Number <> 0 Then 'Si une erreur s'est produite à l'ouverture du fichier
     
                MsgBox "ATTENTION : problème avec la base " & nomBaseComplete & vbCrLf & vbCrLf _
                    & "Merci de contacter le SVP en lui précisant le contexte où vous vous trouvez" _
                    & vbCrLf & vbCrLf & Err.Description _
                    , vbOKOnly + vbCritical, "Message d'erreur"
                    Exit Sub
     
     
            End If
            On Error GoTo 0 'On remet le traitement d'erreur à la normale
             MsgBox "classeur ouvert "
        End If
    End Sub

  16. #16
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    C'est bien qu'il y a une erreur à l'ouverture du fichier.
    Peux-tu mettre un point d'arrêt sur le Exit Sub et nous donner à cet endroit la valeur de nomBaseComplete et la valeur de err.Description ?

  17. #17
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    re,

    la valeur de NomBaseComplete vaut ""
    par contre dans la fenetres variables locales je ne voit pas du tout la valeur err.description...

  18. #18
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Et donc, tu peux en déduire toi-même que Chemin_serveur et Base_Hibiscus_reelle sont vides au moment où tu exécutes ton code !
    Forcément, ça ne peut pas marcher, tu lui demandes d'ouvrir un fichier à partir d'un chemin vide.

    Sinon, il faut absolument que tu apprennes à utiliser la fenêtre espions, souvent bien plus utile que la fenêtre variables locales. Tu peux par exemple sélectionner err.Description dans le code puis faire click droit / ajouter un espions.

    Maintenant, il faut juste que tu vois pourquoi tes variables sont vides. Ce sont des variables globales ? Quand ont-elles été initialisées ?

  19. #19
    Membre confirmé
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Décembre 2011
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2011
    Messages : 91
    Par défaut suite réponse
    re zebre loup

    effectivement quand je fais du pas à pas avec F8,

    Chemin_serveur et Base_Hibiscus_reelle sont bien vides .


    Par contre je n'ai pas la suite du code,mais étant donné lorsque c'est éxécuté sous 2003 cela fonctionne je suppose que cela doit etre une variable Globale .?

    Tu penses que le pb viendrait d'ou ?

  20. #20
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    Franchement, je ne pense pas que le comportement du Open soit différent sous 2003 et 2010. Le problème doit être ailleurs, mais si tu n'as pas le code complet, je ne vois pas ce que je peux faire pour toi !
    Et tu ne vas pas t'en sortir en demandant à celui qui a le fichier complet ce qui se passe parce que vu comment la gestion des erreurs est faite à l'envers, toutes les erreurs vont se mélanger et tu ne sauras jamais d'où vient le problème, surtout si tu maîtrises mal le mode pas à pas, les espions, ...

Discussions similaires

  1. Compatibilité excel 2003 / 2010
    Par artheos dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/11/2012, 12h34
  2. [XL-2010] Problème compatibilité excel 2003-2010
    Par bbcancer dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2012, 17h32
  3. Compatibilité MACRO 2003 ET 2010
    Par debutVBA dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 22/12/2011, 14h57
  4. [XL-2010] probleme compatibilité Macros appelant d'autres macros
    Par Sobas dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/12/2011, 17h01
  5. probleme compatibilité excel 2003/2007
    Par huître dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2011, 21h15

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