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 :

[VBA-E] erreur 422 d'abord cacher la feuille modale.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut [VBA-E] erreur 422 d'abord cacher la feuille modale.
    Bonjour
    j'ai un probleme. voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub modifier_Click()
    UserForm2.Hide 'marche que si il y est
    Dim nomm
    nomm = UserForm1.nom.Text
    Dim LigneU As Long
    LigneU = Columns(1).Find("" & nomm, [A65000], , , xlByRows, xlPrevious).Row
    Range("A" & LigneU).Value = modifnom.Value
    Unload UserForm2
    UserForm1.Show
    End Sub

    Lorsque je cache l'userform2 comme je le fait a la ligne 2, le script fonctionne, mais il faut que je clique 2 fois sur la croix pour fermer la fênetre.
    je ne sais pas si c'est trés normal.
    Mais mon secon probleme c'est que quand je ne met pas le .hide a la seconde ligne j'ai un message d'ereur 422: vous devez d'abord fermer ou cacher la feuille modale du premier plan.
    je ne comprend pas pourquoi j'ai cette erreur, quelqu'un pourrai me dire pouquoi?
    meri d'avance

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par Tu
    Lorsque je cache l'userform2 comme je le fait a la ligne 2, le script fonctionne, mais il faut que je clique 2 fois sur la croix pour fermer la fênetre.
    je ne sais pas si c'est trés normal.
    De quelle croix parles-tu ? Le code n'est pas sur le bouton dans modifier_Click ?
    S'il est sur ce bouton, essaie avec sub modifier_MouseUp()

    quand je ne met pas le .hide a la seconde ligne j'ai un message d'ereur 422: vous devez d'abord fermer ou cacher la feuille modale du premier plan
    A quel moment ? Quand tu fais quoi ?
    Tu dis

    A+

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut vba
    La croix que je parle, c'est la croix de fermuture des application en haut a droite.
    et ça maffiche le message d'erreur lorsque je clique sur le boutonn modifier. le code ne se réalise pas car je n'ai aucune modification sur excel.
    voila voila

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Essaie de faire ça en pas à pas :
    - Mets "UserForm2.Hide" en remarque
    - mets un point d'arrêt sur "nomm = UserForm1.nom.Text"
    et appuie sur le bouton modifier_Click

    Tu n'as pas répondu à mes questions, donc j'en ajoute une autre
    4 - où est ton bouton modifier_Click
    Et puis une autre :
    5 - Quel form cherches-tu à fermer avec la croix ?

    Ensuite tu ne m'as pas dit
    6 - Faut-il toujours deux clics si tu mets ton code sur MouseUp...
    Ou alors,
    7 - précise où tu fais tes deux clics...
    Bref, relis tout et réponds aux questions.
    Ce problème me semble assez simple mais si je ne comprends pas, je ne pourrai pas t'aider.

    A+

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    dés que je rentre chez moi je répond atout ca
    merci

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut on a essayé :)
    Voila, avec ouskel'n'or nous avons essayer de trouver le probleme par message privé.
    J'ai mis le fichier qui pose probleme sur mon ftp:
    http://s140481288.onlinehome.fr/classuer1.xls

    J'explique globalement, ( je rapelle que je débute )
    J'ai créé un Userform1 qui récolte les noms qui sont dans la colone A de ma feuille excel nomé plo.
    Lorsque l'on clique sur le nom d'une personne, cela ouvre une nouvelle fenétre avec le nom dans un textbox, et si l'on veut on modifie ce nom et normalement ça le modifie dans le tableau excel.
    Mais j'ai deux probleme de type boléen

    Le premier c'est que lorsque je clique sur le bouton pour modifier le nom(dans l'userform2) il y a une erreur d'éxécuion 402: vous devez d'abord fermer ou masquer la feuille modale du premier plan.

    Mais lorsque dés le début de la procédure je cache l'userform2, la collone ce modifie bien, mais a la place d'afficher l'userform1 lorsque la modif est fini, ca réaffiche le form2 sans le recharger, et lorsque je clique sur la croix pour fermetre la fenetre ou que je reclique sur le bouton modifier, ca recharge le form2 avec les donnée modifier, et si je reclique une fois encore ca m'affiche le form1.

    quelqu'un sais ce qu'il se passe??
    merci pour votre aide et merci a ouskel'n'or

  7. #7
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Ton Module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public i As Integer
    Public NumRecette
    Public FichesFiltrées
    Public Lig
    Public lbla
    Public lblb
    
    Public Sub Modifier()
        UserForm1.Hide
        UserForm2.Show
    End Sub
    Dans ton UserForm1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub nom_Click()
        Modifier
    End Sub
    Dans ton UserForm2:
    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
    Dim nomm
    
    Private Sub UserForm_Initialize()
        UserForm2.lblb.Caption = UserForm1.nom.Text
        UserForm2.Caption = UserForm1.nom.Text
        UserForm2.Modif.Text = UserForm1.nom.Text
        nomm = UserForm1.nom.Text
        Unload UserForm1
    End Sub
    
    
    Private Sub modifier_Click()
    'UserForm2.Hide
    Dim LigneU
    
    LigneU = Columns(1).Find("" & nomm, [A65000], , , xlByRows, xlPrevious).Row
    Feuil1.Range("A" & LigneU).Value = Modif.Value
    'Feuil2.Cells(LigneU, 1) = Modif
    Unload Me
    'UserForm2.Hide    'plus besoin des trois dernières instructions
    
    'Load UserForm1   
    'UserForm1.Show
    
    End Sub
    C'est quoi Modif.Value? Je n'ai pas vu se faire les modifications mais la gestion de tes UserForms se fait mieux ainsi.

  8. #8
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Par défaut
    J'ai fait une petite erreur. c'est pluto celui qui est en commentaire qui est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub modifier_Click()
    'UserForm2.Hide
    Dim LigneU
     
    LigneU = Columns(1).Find("" & nomm, [A65000], , , xlByRows, xlPrevious).Row
    'Feuil1.Range("A" & LigneU).Value = Modif.Value
    Feuil2.Cells(LigneU, 1) = Modif
    Unload Me
    'UserForm2.Hide    'plus besoin des trois dernières instructions
     
    'Load UserForm1   
    'UserForm1.Show
     
    End Sub
    Mais pourquoi il vaut mieux mettre ce ke tu ma di dans le module plutot que de le mettre dans luseform?

    Merci pour ton aide je teste ca dés que je rentre chez moi, ouskel'n'or m'a dit al meme chose hier soir ca doi etre ca alor

Discussions similaires

  1. [VBA-E] erreur d'execution '1004' sur masquage feuille
    Par Cupoftea dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 18h34
  2. [VBA][EXCEL] Erreur génération d'un graphique
    Par PoZZyX dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/01/2006, 15h52
  3. [VBA]probleme : erreur 2001 operation annulée
    Par julio78 dans le forum Access
    Réponses: 6
    Dernier message: 09/01/2006, 15h21
  4. [debug VBA]Message erreur 2499 seulement en mode debug
    Par manujuggler dans le forum Access
    Réponses: 4
    Dernier message: 05/01/2006, 22h17
  5. [VBA-E] Erreur 91
    Par captaine93 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/09/2005, 11h47

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