Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Empêcher l'affichage d'une fenêtre flottante pour certaines feuilles spécifiques dans un classeur

Khrysthof

XLDnaute Nouveau
Bonjour à tous,
Besoin d'aide à nouveau concernant ce fichier avec fenêtre flottante qui s'ouvre à l'ouverture du classeur.
Le système fonctionne très bien Merci à Phil69970, mais maintenant je désirerai que les fenêtres flottantes ne s'effectue pas pour certaines feuilles (( "Restant à former" et "DonnéeSource" cette dernière en feuille masquée)).
merci d'avance
 

Pièces jointes

  • Tableau suivi .xlsm
    150.4 KB · Affichages: 3
Solution
sinon, pour éviter des messages à répétition inutiles, tu peux remplacer par ceci
VB:
Sub Traiter()
Dim Plage As Range, MaCel As Range, Lig&, Col%, LeNom§, LaFormation§, Liste$, Liste1$, Derlig&
Dim Ws As Worksheet

    For Each Ws In Worksheets
        If Ws.Name <> "Restant à former" And Ws.Name <> "DonnéeSource" Then
            Derlig = Ws.Range("A" & Rows.Count).End(xlUp).Row
            Set Plage = Ws.Range("E2:P" & Derlig)
            For Each MaCel In Plage
                If MaCel < (Date - 1005) Then
                    Lig = MaCel.Row
                    Col = MaCel.Column
                    LeNom = Ws.Range("A" & Lig)
                    LaFormation = Ws.Cells(1, Col)
                    Liste1 = LeNom & " avec  " &...

vgendron

XLDnaute Barbatruc
Bonjour

il te suffit d'ajouter un test sur le nom de la feuille pour ne la traiter que si elle répond au besoin
VB:
Private Sub Workbook_Open()

Dim Plage As Range, MaCel As Range, Lig&, Col%, LeNom§, LaFormation§, Liste$, Liste1$, Derlig&
Dim Ws As Worksheet

    For Each Ws In Worksheets
        If Ws.Name <> "Restant à former" And Ws.Name <> "DonnéeSource" Then
            Derlig = Ws.Range("A" & Rows.Count).End(xlUp).Row
            Set Plage = Ws.Range("E2:P" & Derlig)
            For Each MaCel In Plage
                If MaCel < (Date - 1005) Then
                    Lig = MaCel.Row
                    Col = MaCel.Column
                    LeNom = Ws.Range("A" & Lig)
                    LaFormation = Ws.Cells(1, Col)
                    Liste1 = LeNom & " avec  " & LaFormation & " à renouveler"
                    Liste = Liste & vbCrLf & Liste1
                End If
            Next
            MsgBox "Pour " & Ws.Name & Liste
            Liste = ""
        End If
    Next Ws
End Sub
 

vgendron

XLDnaute Barbatruc
sinon, pour éviter des messages à répétition inutiles, tu peux remplacer par ceci
VB:
Sub Traiter()
Dim Plage As Range, MaCel As Range, Lig&, Col%, LeNom§, LaFormation§, Liste$, Liste1$, Derlig&
Dim Ws As Worksheet

    For Each Ws In Worksheets
        If Ws.Name <> "Restant à former" And Ws.Name <> "DonnéeSource" Then
            Derlig = Ws.Range("A" & Rows.Count).End(xlUp).Row
            Set Plage = Ws.Range("E2:P" & Derlig)
            For Each MaCel In Plage
                If MaCel < (Date - 1005) Then
                    Lig = MaCel.Row
                    Col = MaCel.Column
                    LeNom = Ws.Range("A" & Lig)
                    LaFormation = Ws.Cells(1, Col)
                    Liste1 = LeNom & " avec  " & LaFormation & " à renouveler"
                    Liste = Liste & vbCrLf & Liste1
                End If
            Next MaCel
            If Liste <> "" Then
                Message = Message & "Pour " & Ws.Name & Liste
            End If
            Liste = ""
        End If
    Next Ws
    If Message <> "" Then
        MsgBox Message
    Else
        MsgBox "Tout est OK"
    End If
End Sub
et
Code:
Private Sub Workbook_Open()
    Traiter
End Sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…