Problème fonctionnement code VBA

Pitouche

XLDnaute Nouveau
Bonjour
Débutant en VBA, j'essaie , grâce à des codes collectés sur différents sites de réaliser un classeur sous excel 2007.
Le but de ce programme est de permettre aux personnes autorisées d'enregistrer dans un classeur , les devis réalisés par type d'activité.
Ce classeur comporte plusieurs feuilles accessibles par mots de passe au moyen d'un userform.
Le code permettant l'accès est le suivant:

Private Sub CommandButton1_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Ce code fait référence à une liste de noms de feuilles et de mots de passe correspondants, située dans une feuille nommée "Accueil":

Mot passe Feuille
AdminOV Admin
111111 Automobile
222222 Maintenance
232425 Papeterie
sesame PJ
313233 TOT
414243 TPF
515253 TPF HC
616263 CIM

Ce programme fonctionne pour les 5 premiers mots de passe ,et ne fonctionne plus pour la suite .
Je ne peux pas joindre mon classeur(1Mo)
Pouvez vous m'aider
Merci
 

Papou-net

XLDnaute Barbatruc
Re : Problème fonctionnement code VBA

Bonjour Pitouche, et bienvenue à toi,

Sans être catégorique, le problème pourrait venir de la boucle. Essaie en la modifiant comme ceci :

Code:
Private Sub CommandButton1_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Rows.Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Vérifie également si la plage nommée "MotPasse" est juste.

Espérant avoir aidé.

Cordialement.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Problème fonctionnement code VBA

Bonjour Pitouche et bienvenu, bonjour le forum,

dans ton code Range("MotPasse") fait référence à une plage nommée MotPasse. Peut-être cette plage nommée n'a pas été réactualisée et ne prend en compte que les 5 premières valeurs.

Un petit exemple simplifié avec juste l'UserForm et l'onglet contenant la plage nous permettrait de te proposer une solution.

[Édition]
Bonjour Papou-Net on s'est croisé...
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Problème fonctionnement code VBA

Bonjour le fil, bonjour le forum,

La solution est bien ce que je t'avais recommandé dans mon premier post (tout comme Papou-net d'ailleurs) mais comme tu n'as même pas daigné faire cas à mon post je ne peux rien de plus pour toi...
 

Papou-net

XLDnaute Barbatruc
Re : Problème fonctionnement code VBA

Re Pitouche,

Au vu de ton fichier, et comme te l'a également signalé Robert, le problème est bien dans la définition de ta plage "MotPasse".

Tu dois donc la redéfinir, si ce n'est déjà fait.

Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : Problème fonctionnement code VBA

Re Pitouche,

Ci-joint copie de ton fichier avec mise-à-jour automatique des noms de plage à l'ouverture : macro "MajPlages" dans Module1 lancée depuis le module ThisWorkbook. Pour passer en pièce jointe, j'ai supprimé toutes les feuilles après la deuxième.

Ainsi tu peux ajouter ou retirer des feuilles et des mots de passe sans te soucier de modifier les plages concernées.

Cordialement.
 

Pièces jointes

  • Copie de Enregistrement_Essai_2.xlsm
    30.5 KB · Affichages: 47

Pitouche

XLDnaute Nouveau
Re : Problème fonctionnement code VBA

Re Pitouche,

Ci-joint copie de ton fichier avec mise-à-jour automatique des noms de plage à l'ouverture : macro "MajPlages" dans Module1 lancée depuis le module ThisWorkbook. Pour passer en pièce jointe, j'ai supprimé toutes les feuilles après la deuxième.

Ainsi tu peux ajouter ou retirer des feuilles et des mots de passe sans te soucier de modifier les plages concernées.

Cordialement.

Merci Beaucoup Papou-net
Très sympa
et merci à Robert pour son intervention
Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 393
Messages
2 088 006
Membres
103 698
dernier inscrit
Guillaume MPOYI