Clignotement onglet non souhaite

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

laplayast

XLDnaute Occasionnel
Bonsoir,
Je viens de placer,un code sur le fichier joint et cela me donne un résultat non prévu.Si,je passe de la feuille1 à la feuille2;ou vice-versa,le système de feuille clignote.Normalement une plage de cellule sont nommés sur la feuille1;et également sur la feuille2.Ce,qui implique tant que les cellules de la feuille1,ne sont pas remplie,on ne peut pas continuer avec la feuille suivante.
Par contre les feuilles3et4 fonctionnent bien,mais je n'ai pas de code dessus.
Alors,pourquoi cette anomalie?.
Quelqu'un peut-il me donner une solution.
Merci,de votre aide.
 

Pièces jointes

Re : Clignotement onglet non souhaite

Bonsoir,

avec le code suivant, tu ne peux aller vers un un onglet "suivant", cependant, tu peux revenir vers l'onglet précédent.

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
With Application
    .EnableEvents = False
    If Sh.Name = "Feuil1" And .Count(Sh.Range("REMPLIR_PAGE1")) <> 39 Then Sh.Activate
    If Sh.Name = "Feuil2" And .Count(Sh.Range("REMPLIR_PAGE2")) <> 60 Then Sh.Activate
    .EnableEvents = True
End With
End Sub
 
Re : Clignotement onglet non souhaite

Bonsoir,
A,ce stade je ne vois rien de changé je peux accedér à n'importe quelle feuille.
Je souhaite,passer à l'onglet suivant avec la condition que toute les cases de couleurs soient remplies.
Merci de votre aide.🙂
LAPLAYAST.
 
Re : Clignotement onglet non souhaite

Re-,

avec cette formule :

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
With Application
[COLOR="Red"][SIZE="4"]x = .Count(Range("REMPLIR_PAGE1"))[/SIZE][/COLOR]
    .EnableEvents = False
    If Sh.Name = "Feuil1" And .Count(Range("REMPLIR_PAGE1")) <> 39 Then Sh.Activate
    If Sh.Name = "Feuil2" And .Count(Range("REMPLIR_PAGE2")) <> 60 Then Sh.Activate
    .EnableEvents = True
End With
End Sub

je ne trouves que 38 cellules remplies.....
 
Re : Clignotement onglet non souhaite

Bonsoir,
Après plusieurs essais,je suis toujours à la case départ.Je souhaiterai bloquer le passage à l'onglet suivant si toute les cases de couleurs ne sont pas remplies;et ainsi de suite jusqu'à la feuille4 et feuille après feuille.
Sur les cellules de couleurs il y a une forme conditionnelle et des cellules non adjacentes sont nommés.
Merci de votre aide,afin de resoudre la question.
LAPLAYAST.
 

Pièces jointes

Re : Clignotement onglet non souhaite

Bonsoir,

Ben, fallait le dire, que c'étaient des MEFC....


essaie ainsi (valable pour toutes les feuilles, tu peux "descendre", mais pas "monter", si les cellules faisant l'objet de MEFC ne sont pas toutes remplies)

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
If Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count = 0 Then Exit Sub
With Application
    .EnableEvents = False
    If .CountA(Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions)) <> _
    Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count Then Sh.Activate
    .EnableEvents = True
End With
End Sub
 
Re : Clignotement onglet non souhaite

Bonsoir,
Enfin,la réussite au bout de la ligne;merci de ton assistance.Je,souhaiterai ajouter un MSG BOX à chaque fois,que l'on cherche à passer à la feuille suivante sans avoir rempli toute les cases;du type"REMPLIR LES CASES VIDES".Est-ce possible?Et valable pour chaque feuille.
MERCI,de ton assistance.😉
Laplayast.
 
Re : Clignotement onglet non souhaite

Re-,

Code:
Enfin,la réussite au bout de la ligne

la qualité des solutions proposées est en général proportionnelle à la qualité des questions.... 😀

pour le msgbox...

Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If ActiveSheet.Index < Sh.Index Then Exit Sub
If Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count = 0 Then Exit Sub
With Application
    .EnableEvents = False
    If .CountA(Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions)) <> _
        Sh.Cells.SpecialCells(xlCellTypeAllFormatConditions).Count Then
        Sh.Activate
        MsgBox "Faut tout remplir, mon gars!"
    End If
    .EnableEvents = True
End With
End Sub
 
Re : Clignotement onglet non souhaite

Bonsoir,
Merci,cela fonctionne parfaitement.🙂Maintenant,je souhaiterai bloquer la mise en forme sans passer par la case "protection et verrouillage cellules".Mais avec un code en VBA,qui permet de sélectionner les cellules choisies individuellement.
Est-ce possible?
Merci.
laplayast
 
Re : Clignotement onglet non souhaite

Bonsoir,
Simplement,empêcher d'écrire sur certaines cellules afin de conserver la question ;et éviter de modifier le texte.
Si,je passe par la solution protection et verrouillage cellules,le code VBA de la feuille ne fonctionne pas,j'ai un message d'erreur.
Alors comment faire?
merci.
laplayast.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
583
Retour