XL 2013 Macros et onglet caché

Pacomichel

XLDnaute Nouveau
Bonjour. J'utilise et actualise chaque année un fichier servant à déclarer des heures de travail (joint). cete anée, j'ai du toucher qqch car il "bug" sur les postes de mes petits camarades et, lorsqu'ils me le renvoient, il bug aussi sur mon poste, mais pas au départ !
Bref : je suis à la recherche de l'onglet DONNEES et je ne sais pas comment réparer la fenêtre" Remplissez d'abord..." qui apparait même quand les cases prévues sont remplies !
Merci.
 

Pièces jointes

  • Prévisionnel-suivi S W 2017-18.xlsm
    2 MB · Affichages: 23

thebenoit59

XLDnaute Accro
Bonjour Pacomichel.

Le soucis est dans le code de ThisWorkbook.
Il vérifie les cellules B30 à B32 au lieu de B21 à B23

Pour récupérer ton onglet DONNEES, il faut que tu ailles dans le ruban Révision puis tu désactives Protéger le classeur.
Tu cliques droit sur un onglet et tu fais Afficher.
 

Pacomichel

XLDnaute Nouveau
Bonjour Pacomichel.

Le soucis est dans le code de ThisWorkbook.
Il vérifie les cellules B30 à B32 au lieu de B21 à B23

Pour récupérer ton onglet DONNEES, il faut que tu ailles dans le ruban Révision puis tu désactives Protéger le classeur.
Tu cliques droit sur un onglet et tu fais Afficher.

Super ! merci !
Il ne me reste qu'un soucis : c'est quoi et surtout où ThisWorkbook afin que je puisse y modifier les cellules ? Mais encore : dans l'onglet DONNES, j'ai une "touche" pour protéger le classeur sans faire du feuille par feuille. Merci de me dire pourquoi ça ne fonctionne plus alors que les macros sont bien activées ?
 
Dernière édition:

Pacomichel

XLDnaute Nouveau
Super ! merci !
Il ne me reste qu'un soucis : c'est quoi et surtout où ThisWorkbook afin que je puisse y modifier les cellules ? Mais encore : dans l'onglet DONNES, j'ai une "touche" pour protéger le classeur sans faire du feuille par feuille. Merci de me dire pourquoi ça ne fonctionne plus alors que les macros sont bien activées ?
Dans Développeur / Visual Basic pour modifier le code.
J'ai retrouvé le code dans une version antérieure mais je ne sais pas le mettre ! Merci
Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name <> "A LIRE" Then
Dim nb
nb = Application.CountA(Sheets("A LIRE").Range("B29:B31"))
If nb < 3 Then
MsgBox "Remplissez d'abord les cellules NOM,SERVICE et BASE SEMAINE de la feuille 'A LIRE", vbExclamation, "Saisie"

Sheets("A LIRE").Activate
End If

End If
End Sub

Pour l'onglet DONNEES, les procédures n'existent pas dans VBA elles ont dû être supprimées.
Je te laisse les replacer dans le code.
Itou : je ne sais pas quoi en faire. Elles sont au bon endroit mais pourquoi est-ce qu'elles ne fonctionnent pas ?
Sub protege()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).Activate
Range("A1").Select
ActiveSheet.Protect Password:=""
Next i
Sheets(1).Activate
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Sub deprotege()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).Activate
Range("A1").Select
ActiveSheet.Unprotect Password:=""
Next i
Sheets(1).Activate
Range("A1").Select
Application.ScreenUpdating = True
End Sub

Merci
 

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG