Bonjour,
Pour la toute première fois depuis que je suis dans l'informatique, je vais oser demander de l'aide à une communauté. ...
Voila, j'utilise Excel en Français sur MacOs, (mais possible qu'il y ai du Windows).
Je souhaite cacher la colonne B situées dans l'onglet A1, la colonne C dans l'onglet A2, puis la colonne E dans l'onglet A3.
Je veux utiliser un mot de passe quand je clic sur le bouton VBA. Ce mot de passe sera renseigné dans un fichier RTF (motdepasse.rtf). Ce fichier sera déposé dans le répertoire où sera positionné le tableau Excel.
J'ai un code qui fonctionne bien pour cacher les colonnes, mais pas l'inverse.
PS: ici le chemin du fichier contenant le mot de passe est en dur, mais au final je souhaiterais que le VBA le recherche depuis le répertoire courant ou est ma feuille de calcule (Mac et si OS = Win),
Pourriez-vous me corriger mes erreurs ? :
Merci par avance
.../
Sub CacherOuLibererColonnesAvecMotDePasse()
Dim MotDePasseFichier As String
Dim CheminFichier As String
Dim Onglet As Worksheet
Dim MotDePasseUtilisateur As String
' Spécifiez le chemin absolu du fichier RTF contenant le mot de passe
CheminFichier = "/chemin/absolu/vers/votre/dossier/motdepasse.rtf"
' Lisez le mot de passe depuis le fichier RTF
On Error Resume Next
Open CheminFichier For Input As #1
Line Input #1, MotDePasseFichier
Close #1
On Error GoTo 0
' Demandez le mot de passe à l'utilisateur
MotDePasseUtilisateur = InputBox("Entrez le mot de passe pour cacher ou libérer les colonnes :", "Mot de passe requis")
' Vérifiez si le mot de passe est correct
If MotDePasseUtilisateur = MotDePasseFichier Then
' Cacher ou libérer les colonnes spécifiques dans les onglets
For Each Onglet In ThisWorkbook.Sheets
Select Case Onglet.Name
Case "A1"
' Cacher ou libérer la colonne B dans l'onglet A1
Onglet.Columns("B").Hidden = Not Onglet.Columns("B").Hidden
Case "A2"
' Cacher ou libérer la colonne C dans l'onglet A2
Onglet.Columns("C").Hidden = Not Onglet.Columns("C").Hidden
Case "A3"
' Cacher ou libérer la colonne E dans l'onglet A3
Onglet.Columns("E").Hidden = Not Onglet.Columns("E").Hidden
End Select
Next Onglet
Else
MsgBox "Mot de passe incorrect. Veuillez réessayer.", vbExclamation, "Accès refusé"
End If
End Sub
Pour la toute première fois depuis que je suis dans l'informatique, je vais oser demander de l'aide à une communauté. ...
Voila, j'utilise Excel en Français sur MacOs, (mais possible qu'il y ai du Windows).
Je souhaite cacher la colonne B situées dans l'onglet A1, la colonne C dans l'onglet A2, puis la colonne E dans l'onglet A3.
Je veux utiliser un mot de passe quand je clic sur le bouton VBA. Ce mot de passe sera renseigné dans un fichier RTF (motdepasse.rtf). Ce fichier sera déposé dans le répertoire où sera positionné le tableau Excel.
J'ai un code qui fonctionne bien pour cacher les colonnes, mais pas l'inverse.
PS: ici le chemin du fichier contenant le mot de passe est en dur, mais au final je souhaiterais que le VBA le recherche depuis le répertoire courant ou est ma feuille de calcule (Mac et si OS = Win),
Pourriez-vous me corriger mes erreurs ? :
Merci par avance
.../
Sub CacherOuLibererColonnesAvecMotDePasse()
Dim MotDePasseFichier As String
Dim CheminFichier As String
Dim Onglet As Worksheet
Dim MotDePasseUtilisateur As String
' Spécifiez le chemin absolu du fichier RTF contenant le mot de passe
CheminFichier = "/chemin/absolu/vers/votre/dossier/motdepasse.rtf"
' Lisez le mot de passe depuis le fichier RTF
On Error Resume Next
Open CheminFichier For Input As #1
Line Input #1, MotDePasseFichier
Close #1
On Error GoTo 0
' Demandez le mot de passe à l'utilisateur
MotDePasseUtilisateur = InputBox("Entrez le mot de passe pour cacher ou libérer les colonnes :", "Mot de passe requis")
' Vérifiez si le mot de passe est correct
If MotDePasseUtilisateur = MotDePasseFichier Then
' Cacher ou libérer les colonnes spécifiques dans les onglets
For Each Onglet In ThisWorkbook.Sheets
Select Case Onglet.Name
Case "A1"
' Cacher ou libérer la colonne B dans l'onglet A1
Onglet.Columns("B").Hidden = Not Onglet.Columns("B").Hidden
Case "A2"
' Cacher ou libérer la colonne C dans l'onglet A2
Onglet.Columns("C").Hidden = Not Onglet.Columns("C").Hidden
Case "A3"
' Cacher ou libérer la colonne E dans l'onglet A3
Onglet.Columns("E").Hidden = Not Onglet.Columns("E").Hidden
End Select
Next Onglet
Else
MsgBox "Mot de passe incorrect. Veuillez réessayer.", vbExclamation, "Accès refusé"
End If
End Sub