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
 

Statistiques des forums

Discussions
315 085
Messages
2 116 071
Membres
112 648
dernier inscrit
Otete Christian