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 :

Ouverture classeur et enregistrement [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Par défaut Ouverture classeur et enregistrement
    Bonjour le forum

    Meilleurs vœux 2016 à tous.

    Voilà un moment que je ne suis pas venu, mais la j'ai sincèrement besoin d'aide.

    Mon objectif est d'avoir un classeur principal ou ce trouve un UF avec des boutons qui permet d'ouvrir un autre classeur au choix pour le renseigner.

    Pour l'exemple mon classeur de base est nommé :
    - principal.xlsm
    puis 2 autres classeurs nommés :
    - Soleil.xlsm
    - Pluie.xlsm
    dans le classeur "Principal" ou des informations y seront renseignés manuellement, se trouve également un UF avec plusieurs boutons permettant d'ouvrir d'autres classeurs au choix. Après recherche j'ai bien trouvé un code permettant d'ouvrir un classeur X mais le soucis est que le classeur "principal" reste ouvert en dessous du classeur x qui vient d'être ouvert et au moment de vouloir enregistrer le classeur X et bien la, ça ne marche pas.
    Ceci est pour mon taf car je souhaite avoir accès direct au maximum de docs a partir du classeur "principal". Si vous avez des idées d'amélioration !!!
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
     Dim Chemin As String, NomFichier As String
     Chemin = ThisWorkbook.Path & "\"
     NomFichier = "Soleil.xlsm"
     Me.Hide: UsF_Prin.Hide
     Workbooks.Open Filename:=Chemin & NomFichier
    End Sub
    Merci à vous par avance.

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

    c'est normal que ton classeur principal soit encore "derrière" le classeur ouvert ... puisqu'il n'est pas fermé et qu'ils sont tous les deux dans la même instance Excel.

    ce que je ne comprend, c'est le fait que tu n'arrives pas à enregistrer le classeur qui a été ouvert par ta macro

    comment s'effectue l'enregistrement ? quel est le message d'erreur quand tu enregistres ? si pas de message d'erreur, décris ce qu'il se passe.

    si l'enregistrement est effectué par macro, montre le code.

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    L'userForm que tu lance est lié au classeur principal donc, si tu veux travailler sur un autre, il te faut soit le nommer explicitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Workbooks(NomFichier).Save
    soit utiliser une variable objet "Workbook" déclaré dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public ClasseurX As Workbook
    dans le module de la Form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Set ClasseurX = Workbooks.Open(Filename:=Chemin & NomFichier)
    '...
    '...
    ClasseurX.Save

  4. #4
    Membre confirmé
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Par défaut
    Bonjour joe.levrai

    Merci d'être arrêté sur mon post y de vouloir m'aider.
    Donc pour répondre à tes questions :
    - l'enregistrement s'effectue simplement avec la disquette ou la croix rouge en haut à droite.
    - je n'ai aucun message d'erreur
    quand je clic sur la croix rouge rien ne se passe, il faut que je fasse réduire (avec le petit trait) le classeur que je viens d'ouvrir, réduire le classeur principal, réafficher le classeur X que je viens de renseigner et la je clic sur la croix rouge la procedure d'enregistrement s'effectue.

    voila le déroulement..

    Cdlt

    Bonjour Theze

    Merci d'être arrêté sur mon post y de vouloir m'aider.

    oui l'userForm que je lance est lié au classeur principal donc si je comprends bien il me faut ajouter dans mon code actuel ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(NomFichier).Save
    mais Save permet seulement d'enregistrer? ça ne va pas fermer le classeur "principal" ?

    si c'est ça, je le place ou dans mon code ?

  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,

    en fait, tu voudrais :

    - en partant d'un classeur "principal"
    - pouvoir ouvrir divers documents (via par exemple des clic boutons) depuis un userform
    - au choix d'un classeur : on ouvre le classeur voulu et on ferme le classeur "principal" ?


    si tel est le cas, dans la procédure qui ouvre ton classeur choisi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Unload Me
    ThisWorkbook.Close  ' Ajouter "True" pour enregistrer en fermant ou "False" pour fermer sans enregistrer

  6. #6
    Membre confirmé
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Par défaut
    Bonjour Thèze

    J'ai essayé d'ajouter ta proposition dans mon code, j'ai fais comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Explicit
     
    Private Sub CommandButton1_Click()
     Dim Chemin As String, NomFichier As String
     
     Workbooks("Principal.xlsm").Save
     
     Chemin = ThisWorkbook.Path & "\"
     'Chemin = "C:\Users\FRANCE\Desktop\Essai ouverture Fichier\"
     NomFichier = "Soleil.xlsm"
     Me.Hide: UsF_Prin.Hide
     Workbooks.Open Filename:=Chemin & NomFichier
     
    End Sub
    mais n'arrive toujours pas à enregistrer le classeur "Soleil" (ici pour l'exemple), Je dois certainement mal faire je pense.dsl

    Cdl

    Bonjour joe.levrai

    oui le principe est ce que tu ma écrit
    - en partant d'un classeur "principal"
    - pouvoir ouvrir divers documents (via par exemple des clic boutons) depuis un userform
    - au choix d'un classeur : on ouvre le classeur voulu et on ferme le classeur "principal" ?
    sauf que j'aimerai éviter de fermer le classeur "principal" mais plutôt le laisser ouvert si c'est possible sinon le réduire si c'est possible également.

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

Discussions similaires

  1. Réponses: 53
    Dernier message: 19/03/2009, 16h19
  2. [VBA - Excel]nom du classeur sans enregistrer
    Par comme de bien entendu dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/01/2008, 14h26
  3. Ouverture classeur excel en VBSCRIPT
    Par coeur74 dans le forum ASP
    Réponses: 6
    Dernier message: 20/01/2005, 15h53
  4. Ouverture classeur excel en VBSCRIPT
    Par coeur74 dans le forum ASP
    Réponses: 2
    Dernier message: 20/01/2005, 09h11
  5. Ouverture formulaire sur enregistrement precis
    Par mat_lefebvre dans le forum IHM
    Réponses: 7
    Dernier message: 11/10/2004, 15h37

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