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 :

Perte d'un Userform ouvert précédemment


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut Perte d'un Userform ouvert précédemment
    Bonjour,

    Je travaille en ce moment sur un projet professionnel avec imbrication de plusieurs Userform, enregistrement des données saisies par un utlisateur et rapatriement des données saisies pour modifications éventuelles. Le but de la macro est d'une part de gérer un système d'information sur des clients et d'autre part de générer un contrat à terme par publipostage.

    On va dire que Je suis un développeur sur VBA Excel intermédiaire. Je rencontre tout de même un soucis, même après avoir recherché un bon moment sur votre excellent site.

    Je travaille sur 2 classeurs excel, qui restent ouvert en même temps. Un qui sert au lancement de la macro avec certains paramètres, l'autre concerne le classeur du client qui enregistre les données saisies par l'utilisateur.

    Lorsqu'il s'agit d'un client nouveau, le classeur des paramètres créer un classeur client et enregistre une feuille spécifique dans le classeur client par l'intermédiaire d'une userform principale. Cette opération se déroule sans problème. C'est au moment de revenir vers cette userform principale qu'un message est généré.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    '**************************************************************
    ' BOUTON RETOUR - bouton qui existe dans la feuille Excel CAPER
    '**************************************************************
    Private Sub CommandButton1_Click()
        ActiveWorkbook.Save                             ' enregistre le classeur
        Windows("TEST sur macro 2007.xlsm").Activate    ' active la feuille CONCOURS
        UserForm1.Show                                  ' ouvre la Userform n°1
    End Sub
    Dans la feuille qui vient d'être copie, il y a un bouton "RETOUR". Lorsque je clique dessus, voici le message qui ressort : "valeur non définie", et si j'enlève Option Explicit, c'est le message "Objet requis" qui s'affiche.

    J'ai l'impression qu'il ne reconnaît plus cette Userform1 dès que le deuxième classeur est sélectionnée ??? (A noter que cette Userform1 a été caché précédemment par l'instruction ("Me.Hide").

    Auriez-vous une idée du problème que je rencontre ??

    Merci d'avance pour vos réponses

    Probalian

  2. #2
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonjour le forum,

    Si j'ai bien compris, depuis ton second fichier, tu essaies d'afficher le form du 1er fichier.

    A ce compte là, il faut que tu lui dises où il se trouve.
    Exemple: Workbooks("blabla.xls"). + objet

    Ne m'en veux pas sur la syntaxe je l'ai pas testé, mais j'essaierai cette méthode pour voir.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Juillet 2010
    Messages : 5
    Par défaut
    Bonjour Duddy,

    Merci pour ta réponse. L'idée était là et j'ai essayé, mais Workbooks("..."). + objet, n'admet pas l'objet Userform.

    Petite précision effectivement, lorsqu'il tente de chercher la Userform n°1 qui se trouve dans le classeur n°1, le classeur actif est le classeur n°2. C'est pour ça que dans le code j'active le classeur n°1 pour lancer la Userform1 mais rien n'y fait, j'ai le message d'erreur qui apparaît.

    Je suis toujours en panne. Merci d'avance pour vos réponses !!! Je continue aussi de chercher de mon côté.

    Probalian

  4. #4
    Membre éclairé Avatar de Duddy
    Homme Profil pro
    Agent de maitrise
    Inscrit en
    Novembre 2007
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Agent de maitrise
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2007
    Messages : 257
    Par défaut
    Bonjour le forum,

    Pourquoi ne pas lancer une macro qui se trouverais dans ton fichier 1 depuis ton bouton?

    Ainsi tu pourrais activer ton userform.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu.!!
    bonjour

    une solution serai en début de création de ton nouveau fichier
    initialiser 2 variable workbook

    exemple:
    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
     
    dim classeur1,classeur1 as workbook
    classeur1=activeworkbook.name
     
    'ici ta macro 
     
    'et des que le nouveau classeur est créé
     
    classeur2=thisworkbook.name
     
     
    'et avant le userformX.show
     
    classeur1.activate
    userformX.show
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Attention patricktoulon.
    Tu devrais tester tes codes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim classeur1,classeur1 as workbook
    Non seulement tes 2 variables ont le même nom mais, en plus, seule la deuxième est déclarée As Workbook, l'autre l'est en Variant.

    La bonne syntaxe est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim classeur1 As Workbook, classeur2 As Workbook
    Si classeur1 est déclarée As Workbook, cette ligne provoque une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    classeur1=activeworkbook.name
    La syntaxe correcte est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set classeur1 = ActiveWorkbook
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. Comment accéder à un bouton d'un UserForm ouvert en non modal
    Par jayjay08 dans le forum Général VBA
    Réponses: 6
    Dernier message: 22/08/2011, 12h42
  2. pas d'accè à ma feuille de calcul quand userform ouvert
    Par bigmousse69 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/04/2009, 13h53
  3. acces cellule avec userform ouvert
    Par vinystic dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/01/2009, 17h23
  4. Ouvrir un classeur 'par dessus' un userform ouvert
    Par alexsolex dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/10/2007, 20h16
  5. Récupérer référence d'une popup ouverte précédemment
    Par Ougha dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/09/2007, 16h01

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