Erreur automation l'objet invoqué s'est déconnecté de ses clients VBA

Bonjour à tous,

Je débute en vba.. ceci devant expliquer celà ... J'ai écris une macro qui à partir d'un formulaire remplis une base de donnée.

Elle semblait marcher, mais depuis quelques jour j'ai un message d'erreur : Erreur automation l'objet invoqué s'est déconnecté de ses clients vba

Mon fichier plante alors et se ferme sans me laisser voir d'où vient le problème... Je sais que mon code est archaïque, mais quelqu'un pourrait t-il me donner une piste de solution dans un langage pour junior svp ?

Merci d'avance.

Mon code :

'***************************************
'Procédure permettant d'ajouter un eleve
'dans la base de donnée
'***************************************

Private Sub btnvalider_Click()

'Vérifie que tous les champs sont renseignés

If txtmatricule = "" Or txtnom = "" Or txtprénom = "" Or cbxsexe = "" Or txtddn = "" Or _
cbxsalle = "" Or cbxclasse = "" Or txtparent = "" Or cbxlien = "" Or txttéléphone = "" Or _
cbxrabais = "" Or cbxstatut = "" Then
lblMessage = "Certains champs du formulaire n'ont pas été renseigné, veuillez vérifier !"
Else

'Ôter la protection des feuilles protégées
Sheets("élèves").Activate
Worksheets("élèves").Unprotect Password:="passedemot"

Range("A3").Select
Selection.End(xlDown).Select 'On se positionne sur la dernière ligne non vide
Selection.Offset(1, 0).Select 'Décalage d'une ligne et de deux colonnes vers le bas

'Reporte les informations du formulaire dans la base de donnée

ActiveCell = UCase(txtmatricule)
ActiveCell.Offset(0, 1).Value = cbxstatut
ActiveCell.Offset(0, 2).Value = UCase(txtprénom)
ActiveCell.Offset(0, 3).Value = UCase(txtnom)
ActiveCell.Offset(0, 5).Value = cbxsexe
ActiveCell.Offset(0, 6).Value = CDate(txtddn)
ActiveCell.Offset(0, 7).Value = cbxclasse
ActiveCell.Offset(0, 8).Value = cbxsalle
ActiveCell.Offset(0, 9).Value = UCase(txtparent)
ActiveCell.Offset(0, 10).Value = cbxlien
ActiveCell.Offset(0, 11).Value = txttéléphone
ActiveCell.Offset(0, 12).Value = cbxrabais
ActiveCell.Offset(0, 13).Value = Val(cbxmontant)
ActiveCell.Offset(0, 14).Value = cbxraison
ActiveCell.Offset(0, 15).Value = cbxapprouvé

'Remet le mot de passe

Worksheets("élèves").Protect Password:="passedemot"

'Positionne toi dans le TB
Sheets("TB").Activate
'positionne toi sur cette cellule
Range("A7").Select
'confirmation
lblMessage = "Enregistrement bien éffectué"

End If
End Sub

Edit modo : code à mettre entre balise avec le bouton </>

bonjour,

C'est qui ce lblMessage ? (= "Enregistrement bien éffectué")

Mébon difficile comme ça à partir d'un bout de code de dire grand chose, il vaudrait mieux avoir tout le classeur...

A+

Bonjour à toutes et tous,

Comme exprimé par galopin01, un complément d'information serait apprécié.

Sinon,

Private Sub btnvalider_Click()
Dim ws As Worksheet, lRow As Long, arr(14) As Variant

    If txtmatricule = "" Or txtnom = "" Or txtprénom = "" Or cbxsexe = "" Or txtddn = "" Or _
       cbxsalle = "" Or cbxclasse = "" Or txtparent = "" Or cbxlien = "" Or txttéléphone = "" Or _
       cbxrabais = "" Or cbxstatut = "" Then
        lblMessage = "Certains champs du formulaire n'ont pas été renseigné, veuillez vérifier !"
    Else
        arr(0) = UCase(txtmatricule)
        arr(1) = cbxstatut
        arr(2) = UCase(txtprénom)
        arr(3) = UCase(txtnom)
        arr(4) = cbxsexe
        arr(5) = CDate(txtddn)
        arr(6) = cbxclasse
        arr(7) = cbxsalle
        arr(8) = UCase(txtparent)
        arr(9) = cbxlien
        arr(10) = txttéléphone
        arr(11) = cbxrabais
        arr(12) = Val(cbxmontant)
        arr(13) = cbxraison
        arr(14) = cbxapprouvé
        Set ws = Worksheets("élèves")
        With ws
            .Unprotect Password:="passedemot"
            lRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Cells(lRow, 1).Resize(1, 15).Value = arr
            .Protect Password:="passedemot", userinterfaceonly:=True
        End With
    End If
    'le formulaire est toujours actif !?
    'With Worksheets("TB")
        '.Activate
        '.cellls(7, 1).Select
    'End With

End Sub

Merci pour vos retours,

Je vous joint le fichier, il est très perfectible évidemment et mon amateurisme devrait vous piquer les yeux la plus part du temps...

Le formulaire qui me pose des problèmes est le formulaire frmsaisie, c'est lui qui permet de prendre les informations et les déverser dans la base de donnée "Élèves"

Je ne comprends vraiment pas pourquoi il me cause ce bug ! les autres formulaires ont été bâtit en utilisant la même logique. En procédant par élimination, je me suis rendu compte que la partie du code qui semble causer le bug est celle ci-dessous !! Et pourtant, quand je montait le formulaire et que je faisais des tests elle marchait sans problème !! J'ai essayé par tatonnement, mais je crois que je suis à la limite entre des pro et des copy and paste youtube comme moi !!

Les mots de passe dans le fichier sont : vbagood ou passedemot selon la feuille Excel.

Merci beaucoup d'avance !!

'ActiveCell = UCase(txtmatricule)

'ActiveCell.Offset(0, 1).Value = cbxstatut

'ActiveCell.Offset(0, 2).Value = UCase(txtprénom)

'ActiveCell.Offset(0, 3).Value = UCase(txtnom)

'ActiveCell.Offset(0, 5).Value = cbxsexe

'ActiveCell.Offset(0, 6).Value = CDate(txtddn)

'ActiveCell.Offset(0, 7).Value = cbxclasse

'ActiveCell.Offset(0, 8).Value = cbxsalle

'ActiveCell.Offset(0, 9).Value = UCase(txtparent)

'ActiveCell.Offset(0, 10).Value = cbxlien

'ActiveCell.Offset(0, 11).Value = txttéléphone

'ActiveCell.Offset(0, 12).Value = cbxrabais

'ActiveCell.Offset(0, 13).Value = Val(cbxmontant)

'ActiveCell.Offset(0, 14).Value = cbxraison

'ActiveCell.Offset(0, 15).Value = cbxapprouvé

Bonjour,

As-tu (regardé) testé ma proposition ?

Ton fichier n'est pas passé : Pas de bras pas de chocolat !

Cdlt.

Bonjour Jean-Eric,

Oui j'ai testé ta solution mais je rencontrais le même problème... J'ai laissé le fichier dans sa version originale pour que tu ai le fichier "brut" de départ..

Je le rajoute, pas de bras pas de chocolat :-) j'ai bien riiss, merci pour l'expression lolll.

Merci d'avance.

17je-suis-a-bout.zip (1.20 Mo)

Bonjour à tous, juste un rappel, une âme charitable pourrait me donner une idée de solution.. ?

Merci

Il a été répondu à ce fil en MP.

Rechercher des sujets similaires à "erreur automation objet invoque deconnecte clients vba"