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

Résolu/Fermé
VDB.57 - Modifié par NHenry le 1/11/2016 à 11:52
 VDB.57 - 5 nov. 2016 à 20:34
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

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
1 nov. 2016 à 14:06
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...
0
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
0
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.
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
2 nov. 2016 à 16:22
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...
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022
2 nov. 2016 à 18:24
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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
2 nov. 2016 à 13:53
Bonjour,

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

Pour l'erreur, c'est dans le code de UserForm2 que ca cloche
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir THAU TEME!

Impeccable tout est OK.

Un grand Merci.
0