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 :

Compatibilité d'une session à une autre pour une macro sous Excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Compatibilité d'une session à une autre pour une macro sous Excel
    Bonjour à tous,

    Je suis confrontée à un problème pour une application d'un code VBA Excel d'un même fichier mais sur des sessions différentes (stocké sur une zone d'échange).

    Quand je me connecte sur ma session, mon code fonctionne TB et la fonction "Activate" ne pose aucun problème.

    Mais, lorsque un autre utilisateur lance mon programme avec sa session, le programme s'arrete sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("mon_fichier").Activate
    en me disant que l'indice n'appartient pas à la selection...

    Je ne comprends pas d'où vient le problème, quels paramètres ou quelle option sont à modifier ?

    Mille merci pour votre aide précieuse !!

    Lise

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    autre session même ordinateur?

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Bonjour,

    un code peut très bien se passer des affreux ralentisseurs Activate et autres Select, il s'en porte même mieux …

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    @ rdurupt : dans les deux cas, je m'explique :
    Le programme fonctionne sur mon PC et sur ma session.
    Le programme fonctionne sur un autre PC et sur ma session.
    Le programme ne fonctionne pas sur un autre PC et avec une autre session.
    Je n'ai pas essayé la dernière combinaison (mon PC, autre session), je vais faire ça immédiatement.

    @ Marc-L : quels sont les moyens d'éviter .activate et .select ? C'est effectivement source de nombreux problèmes déjà rencontrés, s'il existe un moyen de le contourner, je suis toute ouie !

    Merci

  5. #5
    Membre régulier
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Septembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows("mon_fichier").Activate
    en lieu et place.

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    @ NicolasST : la meme erreur apparait lorsque j'utilise windows("mon_fichier").activate ou workbooks("mon_fichier").activate.

    Merci

  7. #7
    Membre régulier
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Septembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    Quelques questions :
    y-a-t-il le chemin d'accès dans "mon_fichier",
    Est-ce la macro qui ouvre "mon_fichier"?

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    @ NicolasTS :

    Le debogueur s'arrete sur ce type de ligne : Windows("Interface_Commandes_Previsions").Activate

    Certaines macros problématiques contiennent les lignes permettant l'ouverture d'un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Wbkestouvert = False
    For Each Wbk In Workbooks
    If Wbk.Name = "Previsions.xls" Then Wbkestouvert = True
    Next
    If Wbkestouvert = False Then
    Set Wbk_Previsions = Workbooks.Open(Filename:="\\flamenco\Echange\Prep_france\Atelier\Slotting_Mapping\Interfaces_Lise\Previsions")
    'Else
    End If
    Workbooks("Previsions.xls").Activate
    Sheets("Previsions").Cells(1, 1).Select
    Merci pour votre aide,

    Lise

  9. #9
    Invité
    Invité(e)
    Par défaut
    Il faut utiliser de objet VB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim WbAct As Workbook
    Dim NewWb As Workbook
    Set WbAct = ActiveWorkbook
    Set NewWb = Workbooks.Open
    WbAct.Worksheets("MaFeuille").Copy After:=NewWb.Worksheets(NewWb.Worksheets.Count)

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci à tous pour vos réponses,

    j'ai finalement résolu mon problème en ajoutant l'extension .xls :

    windows("monfichier.xls") au lieu de windows("monfichier").

    De cette manière, mon programme ne beug pas ni sur ma session, ni sur celle des autres utilisateurs.

    Cette solution fonctionne, mais je ne la comprends pas... Si vous pouvez éclairer ma chandelle...

    Merci encore et bonne fin de journée.

  11. #11
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut
    Citation Envoyé par lisedauban Voir le message
    @ Marc-L : quels sont les moyens d'éviter .activate et .select ?Merci
    Pour copier dans la feuille active du classeur contenant la macro une valeur d'un autre classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub MauvaisCodeEnregistré()
        Workbooks("Classeur.xls").Activate
        Worksheets("Total").Activate
        Range("T10").Select
        Selection.Copy
        ThisWorkbook.Activate
        Range("L20").Select
        Selection.PasteSpecial xlPasteValues
    End Sub
    Ces huit lignes de code peuvent être réduites en une seule !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub BonCode()
        [L20].Value = Workbooks("Classeur.xls").Worksheets("Total").[T10].Value
    End Sub
    Travailler directement sur les objets s'avère bien plus efficace …

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

Discussions similaires

  1. [XL-2010] Compatibilité d'une session à une autre pour une macro Excel
    Par jords dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/04/2013, 19h57
  2. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  3. pour une session, une résolution d'ecran différente
    Par riemp dans le forum Windows XP
    Réponses: 11
    Dernier message: 15/07/2007, 20h08
  4. [Sécurité] Pb PHP pour une session membre
    Par fredylover dans le forum Langage
    Réponses: 2
    Dernier message: 02/05/2006, 08h59
  5. Ajouter une clé pour une session non ouverte
    Par prgasp77 dans le forum Windows
    Réponses: 4
    Dernier message: 29/10/2005, 00h26

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