ERREUR DE cOMPILATION ?????

Yldie

XLDnaute Junior
Bonjour à tous,

J'ai un souci au niveau du nombre d'arguments et/ou erreur de compilation, je crois que vous pourriez m'aider à corriger cette macro qui joue sur plusieurs feuilles de mon classeur !?!?

Merci par avance


Sub m()
Dim spwd As String
spwd = InputBox("Entrer le mot de passe")
If spwd <> "RGI" Then
MsgBox ("Mot de passe invalide")
Sheets("Feuil4", "Feuil1", "Feuil15", "Feuil16", "Feuil22", "Feuil23", "Feuil25", "Feuil29", "Feuil30", "Feuil31", "Feuil32", "Feuil33", "Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6").Visible = xlVeryHidden
Sheets("INTRO").Activate
Else
Sheets("Feuil4", "Feuil1", "Feuil15", "Feuil16", "Feuil22", "Feuil23", "Feuil25", "Feuil29", "Feuil30", "Feuil31", "Feuil32", "Feuil33", "Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6").Visible = True

End If

End Sub
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : ERREUR DE cOMPILATION ?????

Bonjour,

tu peux essayer avec ce code :

Code:
Sub m()
Application.ScreenUpdating = False
Dim spwd As String, sh
spwd = InputBox("Entrer le mot de passe")
If spwd <> "RGI" Then
MsgBox ("Mot de passe invalide")
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
                    "Feuil22", "Feuil23", "Feuil25", "Feuil29", _
                    "Feuil30", "Feuil31", "Feuil32", "Feuil33", _
                    "Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = xlVeryHidden
Next sh
Sheets("Feuil1").Activate
Else
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
                    "Feuil22", "Feuil23", "Feuil25", "Feuil29", _
                    "Feuil30", "Feuil31", "Feuil32", "Feuil33", _
                    "Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets("sh").Visible = True
Next sh
End If
End Sub
 

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

Merci Bh² et BrunoM45,

En fait, je me demandais aussi si le fait que mes feuilles (Feuil1, Feuil2, Feuil3....... correspondent à des noms, respectivement INTRO, ORGANI, ETUD....etc...etc...), cela peut-il fausser le code (module, thisworbook et autre...), Je vais voir ce que vous me proposez, en tout cas vous êtes super sympas.


Yldie
 

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

Voici ma feuille 'INTRO' avec la macro jointe....le End Sub de fin semble poser pb ???? J'essaye de caler la feuille 'INTRO', Thisworbook et le module qui va avec mais c'est pas si simple

Private Sub CommandButton1_Click()
m
End Sub
Private Sub Worksheet_Activate()
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = False

End Sub
 
C

Compte Supprimé 979

Guest
Re : ERREUR DE cOMPILATION ?????

Re,
Merci Bh² et BrunoM45,
En fait, je me demandais aussi si le fait que mes feuilles (Feuil1, Feuil2, Feuil3....... correspondent à des noms, respectivement INTRO, ORGANI, ETUD....etc...etc...), cela peut-il fausser le code (module, thisworbook et autre...)
Oui, c'est clair, ça ne peut pas fonctionner dans ces conditions !

Tu peux utiliser alors ce code
Code:
Dim I As Integer, MesSht As String, TSht() As String
  ' Tableau des feuilles à AFFICHER/CACHER séparée par des virgule
  MesSht = "4,1,15,16,22,23,25,29,30,31,32,33,34,35,36,39,6"
  TSht = Split(MesSht, ",")
  For I = 0 To UBound(TSht)
    Sheets(TSht(I)).Visible = True
  Next I

A+
 

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

Merci Bh²,

Voici mon module, avec ton aide mais ça bug tjs, je cherche fais des tentatives mais en vain......si tu penses que ça peut être lié avec le reste !?!? (Thisworbook, 'INTRO', module...). Merci

Sub m()
Application.ScreenUpdating = False
Dim spwd As String, sh
spwd = InputBox("Entrer le mot de passe")
If spwd <> "RGI" Then
MsgBox ("Mot de passe invalide")
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = xlVeryHidden
Next sh
Sheets("INTRO").Activate
Else
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets("sh").Visible = True
Next sh
End If
End Sub
 

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

Merci bcp BrunoM45, Bh²,

je pense que je ne vous ai pas donné l'ensemble du problème donc point de départ mes feuilles "Feuil4", "Feuil1", "Feuil15", "Feuil16", "Feuil22", "Feuil23", "Feuil25", "Feuil29", "Feuil30", "Feuil31", "Feuil32", "Feuil33", "Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6" sont respectivement nommés password, total, colette, groupe, etc....etc....

Maintenant voici mon module actuel


Sub m()
Application.ScreenUpdating = False
Dim spwd As String, sh
spwd = InputBox("Entrer le mot de passe")
If spwd <> "Yldie" Then
MsgBox ("Mot de passe invalide")
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = xlVeryHidden
Next sh
Sheets("INTRO").Activate
Else
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets("sh").Visible = True
Next sh
End If
End Sub



ma feuille 'INTRO'


Private Sub CommandButton1_Click()
m
End Sub
Private Sub Worksheet_Activate()
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = False


End Sub


THISWORBOOK

'- Il faut protéger ton projet pour empêcher l'utilisateur de visualiser les
'macros et donc le mot de passe
'- Si les macros ne sont pas activées à l'ouverture du classeur, la
'protection est inefficace. Il te faut rajouter les macros suivantes dans
'"ThisWorkBook" :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = xlVeryHidden

End Sub

Private Sub Workbook_Open()
For Each sh In Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
Sheets(sh).Visible = xlVeryHidden

End Sub

'Private Sub Workbook_SheetActivate(ByVal Sh As Object)
' Dim spwd As String
' If Sh.Name = "Feuil4" Then
' spwd = InputBox("Entrer le mot de passe")
' If spwd <> "password" Then
' MsgBox ("Mot de passe invalide")
' Sheets("INTRO").Activate
' End If
' End If
'End Sub
 
C

Compte Supprimé 979

Guest
Re : ERREUR DE cOMPILATION ?????

Merci Bh²,
Voici mon module, avec ton aide mais ça bug tjs, je cherche fais des tentatives mais en vain......si tu penses que ça peut être lié avec le reste !?!? (Thisworbook, 'INTRO', module...). Merci [/code]

Voir ma réponse plus haut STP
https://www.excel-downloads.com/threads/erreur-de-compilation.98197/
Il suffit d'adapter le code à ton besoin

Soit :
Code:
Sub m()
  Dim I As Integer, MesSht As String, TSht() As String
  Dim spwd As String, sh
  'Array("Feuil4", "Feuil1", "Feuil15", "Feuil16", _
"Feuil22", "Feuil23", "Feuil25", "Feuil29", _
"Feuil30", "Feuil31", "Feuil32", "Feuil33", _
"Feuil34", "Feuil35", "Feuil36", "Feuil39", "Feuil6")
  ' Correspond à
  ' Tableau des feuilles à AFFICHER/CACHER séparée par des virgule
  MesSht = "4,1,15,16,22,23,25,29,30,31,32,33,34,35,36,39,6"
  TSht = Split(MesSht, ",")
  '
  Application.ScreenUpdating = False
  spwd = InputBox("Entrer le mot de passe")
  If spwd <> "Yldie" Then
    MsgBox ("Mot de passe invalide")
    ' Cacher les feuilles
    For I = 0 To UBound(TSht)
      Sheets(TSht(I)).Visible = xlVeryHidden
    Next I
    Sheets("INTRO").Activate
  Else
    For I = 0 To UBound(TSht)
      Sheets(TSht(I)).Visible = True
    Next I
  End If
End Sub

A+
 
Dernière modification par un modérateur:

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

En fait, Bruno et Bh², vous avez à faire à un débutant de la première heure (curieux certes mais dont il faut lui dire où placer tel ou tel code, ça ressemble souvent à du charabia et je patine dans la choucroute).

Je suis prêt à intégrer n'importe quelle solution, d'ailleurs Bruno, j'ai bien essayé de placer ton userform (saisie mot de passe > Bnvalider > Bnannuler) mais sans succès, il doit y avoir des protections qui m'empêchent d'intégrer les trucs supers chouettes que vous êtes capables de créer
 
C

Compte Supprimé 979

Guest
Re : ERREUR DE cOMPILATION ?????

En fait, Bruno et Bh², vous avez à faire à un débutant de la première heure (curieux certes mais dont il faut lui dire où placer tel ou tel code, ça ressemble souvent à du charabia et je patine dans la choucroute).
C'est bien pou àa que l'on demande souvent aux XLDnautes de joindre un fichier ....
Ca évite les longues discussions dans le vide :D

[quoite]Je suis prêt à intégrer n'importe quelle solution, d'ailleurs Bruno, j'ai bien essayé de placer ton userform (saisie mot de passe > Bnvalider > Bnannuler) mais sans succès, il doit y avoir des protections qui m'empêchent d'intégrer les trucs supers chouettes que vous êtes capables de créer[/quote]
En tout cas pas sur mon fichier !?

A+
 

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

ERREUR d'EXECUTION '9' L'indice n'appartient pas à la sélection
Sheets(TSht(I)).Visible = True

Alors pourquoi !?!?!
Votre aide m'est vraiment précieuse et je sens que vous êtes près du but, mon classeur est monstrueusement volumineux avec des feuilles en veryhidden d'autres non, des modules, des macros, des ThisWorkBook, que sais je encore mais visiblement ça bug toujours, moi je veux juste masquer certaines feuilles qui réapparaissent (onglets) suite à un mot de passe et disparaissent quand je retourne sur 'INTRO'
 
C

Compte Supprimé 979

Guest
Re : ERREUR DE cOMPILATION ?????

Re,

ERREUR d'EXECUTION '9' L'indice n'appartient pas à la sélection
Sheets(TSht(I)).Visible = True
Quand tu passes en mode déboggage et que tu places ton curseur de la souri sur "I", qu'elle valeur à "I" à ce moment là ?

Ou alors dans ta fenêtre d'éxécution tu tapes : Debug.Print TSht(I)

Quand tu dis
mon classeur est monstrueusement volumineux avec des feuilles en veryhidden d'autres non
C'est qu'elle taille en Ko ou Mo ?

A+
 
Dernière modification par un modérateur:

Yldie

XLDnaute Junior
Re : ERREUR DE cOMPILATION ?????

I=0

Au fait, j'ai rebaptisé toutes mes feuilles comme suit : feuille 1 = Feuil1, etc....etc.... des fois que ça simplifie les manips, j'espère que certaines références ne bugueront pas, merci sincèrement pour votre aide, mais en tant que débutant on a vraiment besoin de personnes compétentes comme vous (ça se sent !!!)
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 727
Membres
110 552
dernier inscrit
jasson