Accès restreint par onglet suivant utilisateur

je te laisse découvrir ...

nota : prends l'habitude d'indenter ton code

30vba-test.xlsm (27.01 Ko)

WOW ! Génial. Je regarde toute de suite pour découvrir.

Milles mercis !!! Je te suis très reconnaissante

A la fin, n'oublie pas de protéger ton code VBA ... sinon un petit malin pourrait explorer tous les onglets par cette méthode https://forum.excel-pratique.com/viewtopic.php?p=689998#p689998

Petite correction pour éviter une erreur

Sub ENTRER()

If [USER] = "" Then
    MsgBox "Saisie du nom d'utilisateur obligatoire.", vbInformation
    Exit Sub
End If

If [MdP] = "" Then
    MsgBox "Saisie du mot de passe obligatoire.", vbInformation
    Exit Sub
End If

If VerifMDP([USER], [MdP]) = False Then
    MsgBox "Erreur Mot de passe et/ou utilisateur. Merci de saisir à nouveau.", vbInformation
    [USER] = ""
    [MdP] = ""
    [USER].Select
    Exit Sub
End If

[USER].Select

AfficheFeuilles [USER]
[USER] = ""
[MdP] = ""

End Sub

Tout marche nickel ! Un GRAND MERCI pour ton aide ! C'est vraiment super

J'ai une dernière petite question: Comment je peux protéger les feuils dans le VBA code car j'entends que qqn qui connaît VBA pourrait aller et changer la visibilité de la feuil ?

Merci encore.

Tu vas dans l'éditeur de code VBA

Tu fais Outils > Propriétés du VBAProject > onglet protection

Mais tu as intérêt à te souvenir du code ...

Ça marche super ! Merci pour me ton aide et pour me faire découvrir VBA. Très intéressant !

Bien à toi

Re bonjour,

Je viens d'envoyer le document à mon patron et en fait il a pu voir tous les fiches affichés en bas et seulement après cliquer "activer le contenu" le doc s'est mis dans "la bonne forme" càd affichant seulement la page accueil. C'est bizarre ça. Donc quand je l’envoie par mail ça perds les marcos ? car j'ai un message ! les macros ont été désactives.

Je l'ai mis sur le SharePoint de l'entreprise et tous les fiches sont visibles. Je ne comprends plus rien...Sur mon donc ça marche et apart ça non...

Il faudrait donc ajouter lors de la fermeture le masquage des onglets.

Je ne sais pas pourquoi je ne l'ai pas fait ici !! je vais t'envoyer le code.

Après aucun risque...car ton patron l'a vu dans l'état dans lequel le dernier l'a laissé.

Remplace la procédure Private Sub Workbook_BeforeClose par

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Accueil").Visible = True

Dim Ws As Worksheet

For Each Ws In ThisWorkbook.Worksheets
    If Ws.Name <> "Accueil" Then Ws.Visible = xlSheetVeryHidden
Next Ws

End Sub
31vba-test.xlsm (27.15 Ko)

J'ai testé avec un collègue. Quand il reçoit, il voit que la page d'accueil.

ça marche.

Bonjour, je reviens vers toi avec un nouveau sujet car je suis très contente de ce que j'ai appris de toi...

Je t'envoie un fichier test pour mieux expliquer mon sujet. J'ai 3 prestations qui durent 8, 4 et 6 mois respectivement.

Je dois faire en sort qu'au moment où qqn renseigne le nom d'un client (en dessous d'une prestation), selon le mois où la prestation commence, que les cellules suivantes se remplissent automatiquement avec le nombre de jours par mois pendant la durée (nbr de mois) de la prestation.

Donc, par exemple je renseigne un nom de client en Prestation 1 le mois de septembre et les 8 cellules (correspondant à 8 mois durée prestation) se remplissent automatiquement avec 0,75 0,75 0,75 0,5 0,5 0,25 0,25 0,25 (jours par mois)

Est il possible de faire ça ?

Merci d'avance pour ton aide.

Je dois faire en sort qu'au moment où qqn renseigne le nom d'un client (en dessous d'une prestation), selon le mois où la prestation commence,

Merci d'avance pour ton aide.

Ce n'est pas très complexe mais il faudra prévoir les modifications éventuelles ...

une question : comment est renseigné le mois de début de la prestation ? peut-on ajouter une colonne ?

Les consignes n'ont pas été très précises concernant la saisie du mois. ça me semble très bien d'ajouter une colonne "Date début prestation" par exemple. SI besoin d'ajouter ou changer qqch pour le faire marcher, pas de soucis.

Merci pour ton aide.

Premier jet

Bonjour et merci pour ta réponse,

Je viens de tester : j'ai mis un nom dans la prestation, je copie en bas la cellule en dessus avec la durée 8 mois par exemple et cela déclenche déjà les cellules à se remplir automatiquement mais à partir de la colonne AB sans me donner l'opportunité de mettre la date du début....

Aussi, j'ai voulu changer dans l'onglet "parametres" la Prestation 2 d'être que 3 mois à 0,75 chaque & également dans la colonne durée mais si je change ça donne un message d'erreur

Je t'envoie le fichier avec mes tests...

Après...ce code je dois l'intégrer sur chaque onglet de fichier/projet précédent que tu m'as aidé à donner accès restreint par onglet. Je ne sais pas comment faire pour que les codes interférent pas...

Encore un petit truc....est il possible que la colonne "durée" ne soit pas visible sur la feuille ?

ok

merci pour ces retours

ce que j'ai fait est sommaire ... je vais maintenant l'améliorer avec tes demandes également

du coup j'ai mieux compris qu'il fallait s'appuyer sur "Prestation X" sans mettre les mois

oui, c'est une procédure "événementielle" qui faudra recopier dans chaque feuille

tu noteras aussi que

  • les plages se nomment _8 , _6 , _4 dans l'onglet paramètres
  • que les durées s'expriment en nombre avec un format 0" mois" donc il suffit juste d'entrer un nombre ... et c'est ce que je dois complètement bouleverser !
Rechercher des sujets similaires à "acces restreint onglet suivant utilisateur"