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 :

Workbooks("Truc.xlsx").Activate ne fonctionne pas [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut Workbooks("Truc.xlsx").Activate ne fonctionne pas
    Bonjour
    Quand je déroule ma procédure pas à pas, tout est Ok, mais quand je lance l'ensemble des procécures, l'activation ne se fait pas ce qui m'empêche de sélectionner mes données.

    Dans une procédure, j'ouvre un fichier Recup.xlsx
    puis je voudrais activer le fichier principal ou l'utilsateur doit sélectionner des noms qui seront ensuite insérés dans le fichier Recup.

    Voici mon 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
    Public Sub OuvFicReq()
    'On ouvre le fichier Récup.xlsx
    Dim ChemSource As String, MonFich As String
    Dim Wkb As Workbook
    ChemSource = "N:\...\Sources"
    MonFich = ChemSource & "\2015\" & "Récup.xlsx"  
    Workbooks.Open MonFich
    call ChoixUsers
    End Sub
     
    Sub ChoixUsers()
    Dim Plage As Range, Réf As Range
    Dim i As Integer, c As Integer
     Windows("FichPrincipal.xlsm").Activate
    'Workbooks("FichPrincipal.xlsm").Activate
    Worksheets("Tables").Range("B4").Select
    ' Range("'[FichPrincipal.xlsm]Tables'!TablAgent").Select
    ' Application.Goto (ActiveWorkbook.Sheets("Tables").Range("B4"))
        Set Plage = Application.InputBox("Sélectionnez le ou les noms concernés," & vbCrLf & _
                "Utilisez la touche Ctrl s'il y a une sélection multiple", "Sélection de cellules", Type:=8)
    Pour que l'utilisateur puisse sélectionner les cellules, il est indispensable que je retourne sur FichPrincipal. j'ai essayé les différents code en apostrophe, mais cela ne change rien

    Merci de bien vouloir m'aider

  2. #2
    Expert éminent
    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
    Par défaut
    Bonjour,

    si le code est bien dans la fichier principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub OuvFicReq()
        Workbooks.Open "N:\...\Sources\2015\Récup.xlsx"
        ThisWorkbook.Worksheets("Tables").Activate
        Range("B4").Select
    '   suite du code
    End Sub
    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, …

  3. #3
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour MarcL
    Merci de ta réponse
    si le code est bien dans la fichier principal
    oui, le fichier principal contient le code
    Maintenant, je me retrouve bien sur le fichier principal, mais toujours pas sur la bonne feuille, je me retrouve sur la feuille depuis laquelle j'ai lancé mes macros (feuille "MàJ") et non feuille "Tables".
    ça parait tellement évident, c'est à devenir fou.
    le pire c'est que quand j'arrête les macros, je me retrouve bien sur la feuille "Tables"...

  4. #4
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    je pense que le problème vient de la suite du code, lorsque j'envoie la fenêtre de sélection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Set Plage = Application.InputBox("Sélectionnez le ou les noms concernés," & vbCrLf & _
                "Utilisez la touche Ctrl s'il y a une sélection multiple", "Sélection de cellules", Type:=8)
    en effet, si je remplace ce code par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B45").Copy Range("[Récup.xlsx]A_Recup!TbNomRecup[NomRecup]")
    cela fonctionne, je suis bien sur la feuille ("Tables") et le copié / collé a été effectué

    Alors que puis-je faire pour laisser l'utilisateur choisir ?

  5. #5
    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,

    il faut activer la feuille table après ton inputbox.
    à la fermeture de ce dernier, tu reviens automatiquement sur la feuille d'où il a été lancé

    pas tout à fait ton problème, mais gravitant autour des inputbox et des feuilles : http://www.developpez.net/forums/d15...e/#post8516962

  6. #6
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonsoir tout le monde,
    Merci d'avoir essayé de m'aider.
    Y'a rien à faire, rien ne fonctionne. Une journée là dessus, c'est beaucoup.
    Je vais rentrer chez moi, si vous me trouvez une solution, je tacherai de la tester dimance, sinon j'essaireai autrement lundi.

    Merci Joe, j'ai essayé en adaptant, je me retrouve sur la bonne feuille, mais je ne peux rien sélectionner, j'ai la fenêtre type 8, mais plus accès au classeur.

    Merci encore à tous

  7. #7
    Expert éminent
    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
    Par défaut
    Citation Envoyé par mouftie Voir le message
    je me retrouve sur la feuille depuis laquelle j'ai lancé mes macros (feuille "MàJ") et non feuille "Tables".
    le pire c'est que quand j'arrête les macros, je me retrouve bien sur la feuille "Tables"...
    Cela ressemble à avoir désactiver dans le code au préalable l'affichage via ScreenUpdating, est-ce le cas ?

    Et où est situé le code : dans un module normal, dans un module de feuille de calculs, ailleurs ?

  8. #8
    Membre éclairé
    Femme Profil pro
    reconversion en cours
    Inscrit en
    Juillet 2009
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : reconversion en cours
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2009
    Messages : 637
    Par défaut
    Bonjour Marc,
    C'est lundi, on peut se lâcher ? Tu es mon sauveur !

    Oui, effectivement j'ai pour habitude de faire une première procédure qui lance toutes les sous procédures et pour accéler le code, je commence par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False 'Cache le déroulement du code
    Donc ça je l'ai laissé, mais dans la procédure qui ouvre le fichier j'ai mis le ScreenUdating sur True et remis sur False à la fin de celle qui demande le choix de l'utilisateur.

    J'ai fait 3 tests, ça a fonctionné à chaque fois.

    Encore merci beaucoup

    PS : pour répondre à tes questions, oui mon code est dans un module normal

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

Discussions similaires

  1. [XL-2010] Windows().Activate ne fonctionne pas
    Par Enfermania dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 31/07/2015, 16h06
  2. [XL-2007] Activate ne fonctionne pas sous Excel 2007
    Par Pier3d dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2011, 17h21
  3. [CSS] a:active ne fonctionne pas toujours ?
    Par KpTn dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 10/05/2006, 18h25

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