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 :

Problème de sauvegarde : Erreur 429 ! [XL-2010]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Amateur / besoins pro
    Inscrit en
    Août 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Amateur / besoins pro

    Informations forums :
    Inscription : Août 2016
    Messages : 6
    Par défaut Problème de sauvegarde : Erreur 429 !
    Bonjour à tou(te)s,

    Je pense que mon problème est relativement simple mais à parcourir le forum et à me triturer les neurones, je n'y vois plus très clair (malgré la grande simplicité du code).

    Objectif :
    Proposer à l'utilisateur lors de la fermeture d'un UserForm de sauvegarder le fichier Excel, de ne pas le sauvegarder ou d'annuler l'opération.

    Constat :
    Cas d'un seul classeur ouvert :
    A la commande de fermeture de l'UserForm (par la croix), toutes les options de sauvegarde et d'annulation fonctionnent, le classeur et Excel se ferment et l'UserForm s'ouvre parfaitement au coup d'après.

    Cas de deux classeurs ouverts :
    A la commande de fermeture de l'UserForm, toutes les options de sauvegarde et d'annulation semblent fonctionner, le classeur se ferme. A l'ouverture du fichier Excel (par Fichier-> Ouvrir), "l'auto open" m'ouvre ma boîte de dialogue mais aussitôt après j'ai l'erreur '429' ("Le composant ActiveX ne peut pas créer l'objet "), qui intervient au moment de la ligne "Saisie.Show". Cela me fait penser que VBA ne voit plus mon UserForm et qu'il essayait de le créer...

    J'ai essayé plusieurs syntaxes, essayé de voir si cela ne venait pas de références manquantes, mais mes faibles connaissances en VBA m'empêchent d'aller plus loin. Je vous joint donc le fichier...

    Aussi, je vous remercie vivement par avance pour les pistes que vous saurez me conseiller...

    Code dans ThisWorkbook :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Workbook_Open()
    ThisWorkbook.Activate
    Select Case MsgBox("Ouvrir l'interface de saisie ?", vbQuestion + vbYesNo, "Dossier CEP")
        Case vbYes
            Saisie.Show
        Case vbNo
            ActiveWindow.WindowState = xlMaximized
    End Select
    End Sub
    Code dans UserForm :
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    'Si fermeture ordonnée par la croix du UserForm
    If CloseMode = 0 Then
        Call Quitter
        'Annule la fermeture de l'Userform si autres actions non abouties dans Quitter
        Cancel = True
        Saisie.Show
    'Si fermeture ordonnée par le code
    ElseIf CloseMode = 1 Then
        Exit Sub
    End If
    End Sub
     
    Private Sub Quitter()
    'Déclarations
    Dim num As Integer
    'Initialisation(s)
    Saisie.Hide
    num = Workbooks.Count
     
    rep5 = MsgBox("Enregistrer les modifications ?", vbYesNoCancel + vbExclamation, "Demande de confirmation")
    If rep5 = vbYes Then
        If num = 1 Then
            Unload Saisie
            ThisWorkbook.Save
            Application.Quit
        ElseIf num > 1 Then
            Unload Saisie
            ThisWorkbook.Close True
        End If
    ElseIf rep5 = vbNo Then
        If num = 1 Then
            ThisWorkbook.Saved = True
            Unload Saisie
            Application.Quit
        ElseIf num > 1 Then
            Unload Saisie
            ThisWorkbook.Close False
        End If
    ElseIf rep5 = vbCancel Then
        Annule = 1
        Exit Sub
    End If
    End Sub
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [AC-2010] problème création dynamique de textbox, erreur 429
    Par zorroe dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 05/03/2012, 10h22
  2. Problème ActiveX erreur 429
    Par polo42 dans le forum Windows
    Réponses: 2
    Dernier message: 17/04/2008, 19h02
  3. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 15h05
  4. Problème de sauvegarde des locales
    Par PANAYE Nicolas dans le forum XMLRAD
    Réponses: 1
    Dernier message: 04/08/2005, 09h51
  5. problème de Portabilité (erreur 1407)
    Par cgMorpheus dans le forum MFC
    Réponses: 3
    Dernier message: 06/03/2005, 21h00

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