Erreur d'éxecution 75 objet spécifié introuvable

[Résolu/Fermé]
Signaler
-
 VDB.57 -
Bonjours les experts,
Grace à l’aide de certains d’entre vous que je remercie encore, j’ai pu réaliser un outil pour gérer la caisse de mon association.
Globalement il fonctionne bien, mais de temps en temps apparait l’erreur d’exécution 75 « objet spécifié introuvable »
La macro s’arrête sur la ligne « userform 2 schow modal »
Voir macro ci-dessous.
Si quelqu’un pouvait m’aider à remédier à ce problème je lui en serai gré.
Merci par avance.

Sub OuvrirCaisse()
    Sheets("caisse").Unprotect
    Sheets("caisse").Visible = True
    Sheets("caisse").Select
     Cells.Select
    Range("o1").Activate
    Selection.EntireColumn.Hidden = False

UserForm2.Show modal
    
Columns("A:N").Select
Selection.EntireColumn.Hidden = True
 Columns("Aa:aa").Select
  Selection.EntireColumn.Hidden = True
  Columns("Ac:ac").Select
    Selection.EntireColumn.Hidden = True
    Columns("AF:ah").Select
    Selection.EntireColumn.Hidden = True
    Columns("Ai:ai").Select
    Selection.EntireColumn.Hidden = True
     Range("J1").Select
    Selection.Copy
    Range("J2:J40").Select
    ActiveWindow.SmallScroll Down:=-18
    Range("J2:J40,L2:L40").Select
    Range("L2").Activate
    ActiveWindow.SmallScroll Down:=-21
    Range("J2:J40,L2:L40,N2:N40").Select
    Range("N2").Activate
    ActiveSheet.Paste
    Range("O1").Select
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

5 réponses

Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
154
Bonjour VDB, bonjour le forum,

Peut-être comme ça :

Sub OuvrirCaisse()
Dim C As Worksheet

Set C = Sheets("caisse")
C.Unprotect
C.Visible = True
C.Select
C.Cells.EntireColumn.Hidden = False
C.Columns("A:N").Hidden = True
C.Columns("AA:AA").Hidden = True
C.Columns("AC:AC").Hidden = True
C.Columns("AF:AH").Hidden = True
C.Columns("AI:AI").Hidden = True
C.Range("J1").Copy C.Range("N2")
C.Range("O1").Select
C.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
UserForm2.Show
End Sub


En règle générale évite autant que tu le peux les Select qui ne font que ralentir l'exécution du code...
Bonjour Thau Theme et merci pour ta réponse.

Ta macro s'arrête à la ligne "userform2 show"
Je me suis permis d'y apporter une petite modif. Pour le moment ça fonctionne mieux qu'auparavant, vu ta simplification.

Ci dessous pour avis ton code modifié.

Sub OuvrirCaisse()
Dim C As Worksheet
Set C = Sheets("caisse")
C.Unprotect
C.Visible = True
UserForm2.Show modal
C.Select
C.Cells.EntireColumn.Hidden = False
C.Columns("A:N").Hidden = True
C.Columns("AA:AA").Hidden = True
C.Columns("AC:AC").Hidden = True
C.Columns("AF:AH").Hidden = True
C.Columns("AI:AI").Hidden = True
C.Range("J1").Copy C.Range("N2")
C.Range("O1").Select
C.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
J'ai oublié de rajouter quelques lignes au code modifié ci-dessus.

Sub OuvrirCaisse()
Dim C As Worksheet
Set C = Sheets("caisse")
C.Unprotect
C.Visible = True
UserForm2.Show modal
C.Select
C.Cells.EntireColumn.Hidden = False
C.Columns("A:N").Hidden = True
C.Columns("AA:AA").Hidden = True
C.Columns("AC:AC").Hidden = True
C.Columns("AF:AH").Hidden = True
C.Columns("AI:AI").Hidden = True
Range("J1").Select
Selection.Copy
Range("J2:J40").Select
ActiveWindow.SmallScroll Down:=-18
Range("J2:J40,L2:L40").Select
Range("L2").Activate
ActiveWindow.SmallScroll Down:=-21
Range("J2:J40,L2:L40,N2:N40").Select
Range("N2").Activate
ActiveSheet.Paste
Range("O1").Select

C.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Merci de me donner ton avis.
Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
154
Bonjour VDB, F,

J'avais déjà inclus ces lignes mais en supprimant la partie inutile ça donnait :
C.Range("J1").Copy C.Range("N2")

Et je préfère ouvrir l'UserForm à la fin, une fois que la mise en forme est terminée.
Sinon, je n'utilise pas modal qui est la valeur par défaut...

Comme F894009, je pense que si tu as une erreur elle se trouve dans le code d'initialisation de ton UserForm. C'est ce code que tu dois faire tourner pas à pas pour voir où se situe l'erreur...
Messages postés
15982
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 septembre 2021
1 535 >
Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021

Bonjor ThauTheme,

je n'utilise pas modal

Surtout que c'est
VBModal 
ou
VBModeless

UserForm2.Show modal
donne la meme chose que
UserForm2.Show VBModeless

de meme que ceci:
UserForm1.Show azerty
Messages postés
15982
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
25 septembre 2021
1 535
Bonjour,

UserForm2.Show modal
Qu'entendez vous par ce modal ???

Pour l'erreur, c'est dans le code de UserForm2 que ca cloche
Bonsoir THAU TEME!

Impeccable tout est OK.

Un grand Merci.