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

Résolu
VDB.57 -  
 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

  1. ThauTheme Messages postés 1564 Statut Membre 160
     
    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
  2. VDB.57
     
    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
  3. VDB.57
     
    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
    1. ThauTheme Messages postés 1564 Statut Membre 160
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > ThauTheme Messages postés 1564 Statut Membre
         
        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
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

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

    Pour l'erreur, c'est dans le code de UserForm2 que ca cloche
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. VDB.57
     
    Bonsoir THAU TEME!

    Impeccable tout est OK.

    Un grand Merci.
    0