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 :

Activer un classeur Excel 2003 depuis Excel 2007 [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Activer un classeur Excel 2003 depuis Excel 2007
    Bonjour,
    Je cherche à activer un fichier Excel 2003 depuis un macro VBA d'un fichier Excel 2007. Si une erreur survient à l'activation, jouvre ce même fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Workbooks(nomFichierVhl).Activate
    'Erreur 9 : le fichier n'est pas ouvert
    If Err.Number = 9 Then
          Err = 0
          Workbooks.Open ActiveWorkbook.Path & "\" & nomFichierVhl
    End If
    Malheureusement, j'ai beau avoir le fichier Excel ouvert, la macro tente de rouvrir une seconde fois le fichier. Je pense que c'est dû au fait que mon fichier Excel 2003 est ouvert en "Mode de compatibilité". Lorsque je clique sur mes fichiers Excels ouverts, j'ai l'affichage "FichierExcel.xls [Mode de Compatibilité]".

    Est-ce que quelqu'un a déjà été confronté à ce problème. Peut-on le résoudre sans passer tous ses fichier Excels 2003 en Excel 2007 ?

    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    et que renvoie ceci?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Msgbox nomFichierVhl
    Workbooks(nomFichierVhl).Activate
    'Erreur 9 : le fichier n'est pas ouvert
    If Err.Number = 9 Then
          Err = 0
          Workbooks.Open ActiveWorkbook.Path & "\" & nomFichierVhl
    End If

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Essaye comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    On Error GoTo erreur
    Workbooks(nomFichierVhl).Activate
    Exit Sub
    erreur:
    Workbooks.Open ThisWorkbook.Path & "\" & nomFichierVhl
    End Sub
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Bonjour Benjîle et fring.

    Pour Benjîle, le msgbox me renvoie le nom de mon fichier Excel sans le chemin, à savoir "Ref Vehicule.xls".
    Pour fring, j'ai utilisé un au dessus que j'ai oublié ici, mais je vais essayer ta solution.

    Merci pour vos réponses.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Même problème avec ta proposition fring :

    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
    Sub testOuverture()
     
    nomFichierReferentiel = "Ref Vehicule.xls"
    nomFichierVehicule = "Vehicule_1.xls"
     
    On Error GoTo erreur1
    Workbooks(nomFichierVehicule).Activate
    'Erreur 9 : le fichier n'est pas ouvert
    'If Err.Number = 9 Then
    '    MsgBox ("Ouverture de " & nomFichierVehicule)
    '    Err = 0
    '    Workbooks.Open ActiveWorkbook.Path & "\" & nomFichierVehicule
    'End If
     
    On Error GoTo erreur2
    Workbooks(nomFichierReferentiel).Activate
    'Erreur 9 : le fichier n'est pas ouvert
    'If Err.Number = 9 Then
    '    MsgBox ("Ouverture de " & nomFichierReferentiel)
    '    Err = 0
    '    Workbooks.Open ActiveWorkbook.Path & "\" & nomFichierReferentiel
    'End If
     
    erreur1: Workbooks.Open ThisWorkbook.Path & "\" & nomFichierVehicule
    erreur2: Workbooks.Open ThisWorkbook.Path & "\" & nomFichierReferentiel
    End Sub
    L'erreur est bien déclenchée, donc Excel essaye d'ouvrir le classeur en question, mais j'ai le message d'erreur "Ref Vehicule.xls est déjà ouvert, ...".

    Autant pour moi en ajoutant un Exit Sub, ça fonctionne, mais j'aimerais pouvoir continuer à écrire du code après. Je vais voir vers un appel de fonction.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    fais un err.clear avant l'activation peut être que le script détecte une erreur déjà survenue

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Peut être je ferai comme ceci et continuer à travailler avec les variables WbkV et WbkR sans activer quoi que ce soit
    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
    Sub testOuverture()
    Dim WbkR As Workbook, WbkV As Workbook
    Const nomFichierReferentiel As String = "Ref Vehicule.xls"
    Const nomFichierVehicule As String = "Vehicule_1.xls"
     
    On Error Resume Next
    Set WbkV = Workbooks(nomFichierVehicule)
    On Error GoTo 0
    If WbkV Is Nothing Then Set WbkV = Workbooks.Open(ThisWorkbook.Path & "\" & nomFichierVehicule)
     
    On Error Resume Next
    Set WbkR = Workbooks(nomFichierReferentiel)
    On Error GoTo 0
    If WbkR Is Nothing Then Set WbkR = Workbooks.Open(ThisWorkbook.Path & "\" & nomFichierReferentiel)
     
    'suite du code avec WbkV et WbkR
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Merci pour votre aide !
    Passer par des variables en ce qui concerne les classeurs Excels fonctionne !
    Merci pour votre aide.
    A bientôt

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

Discussions similaires

  1. forcer le style barre d'outils Excel 2003 avec Excel 2007
    Par beegees dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 11/05/2008, 09h20
  2. acceder au code vba à partir d'un fichier excel 2003 depuis 97
    Par miko91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/10/2007, 16h01
  3. Envoi de mail depuis Excel 2003 via Outlook 2003
    Par SlySylvain dans le forum Excel
    Réponses: 2
    Dernier message: 19/04/2007, 09h01
  4. [EXCEL/C#] Piloter Excel XP compatible Excel 2003 ?
    Par legillou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/08/2006, 08h01
  5. VBA-protection classeur et feuille sous Excel 2003 et 97
    Par derf3183 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 28/07/2006, 14h04

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