Utilisation de la même macro pour plusieurs feuilles

Bonsoir le forum,
j'ai une feuille excel avec les 7 jours de la semaine et j'ai créé un userform dans lequel je peux sélectionner via une combobox le jour de la semaine de ma feuille excel
je voudrais donc quand je sélectionne ce jour déclencher la macro suivante
pour avoir l'entête correspondant à A1
sur un jour pas de probleme avec with sheets("Lundi") etc .. mais je me vois mal répéter 7 fois cette manip.

Pouvez vous m'aider

merci

Sub essai()

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets

madate = Format(Date, "yyyy")
masemaine = Format(Date, "ww", Monday)

Range("A1").Value = "TRANSPORTS RADAMIER Exercice " & madate
Range("A2").Value = "Relevé d'Activité Semaine " & masemaine

With ws.Range("A2")
Range("A1").Select
With .Characters(Start:=27, Length:=5).Font
.Name = "arial black"
.FontStyle = "Gras italique"
.Size = 25
.Color = -16776961
'.ColorIndex = 41
End With
End With
With ws.Range("A2")
Range("A2").Select
With .Characters(Start:=27, Length:=5).Font
.Name = "arial black"
.FontStyle = "Gras italique"
.Size = 25
.Color = -16776961
End With
End With

Next ws
End Sub

10 réponses

  1. Bonsoir Solene, bonsoir le forum,

    Pas sûr d'avoir bien compris... Apparemment, il manquait quelques point (.) devant certaines lignes. Je te propose le code suivant :

    Sub essai()
    Dim ws As Worksheet
    
    madate = Format(Date, "yyyy")
    masemaine = Format(Date, "ww", Monday)
    For Each ws In ThisWorkbook.Worksheets
        .Range("A1").Value = "TRANSPORTS RADAMIER Exercice " & madate
        .Range("A2").Value = "Relevé d'Activité Semaine " & masemaine
        With .Range("A1").Characters(Start:=27, Length:=5).Font
            .Name = "arial black"
            .FontStyle = "Gras italique"
            .Size = 25
            .Color = -16776961
            '.ColorIndex = 41
        End With
        With Range("A2").Characters(Start:=27, Length:=5).Font
            .Name = "arial black"
            .FontStyle = "Gras italique"
            .Size = 25
            .Color = -16776961
        End With
    Next ws
    End Sub
    

    0
    1. bonjour ThauTheme

      en pièce jointe mon fichier
      qui vaudra certainement mieux que mes explications
      https://www.cjoint.com/?0CioOiFUIRN

      quand je sélectionne par exemple mardi via mon userform je complète ma feuille mardi via mon userform avec toujours le même module
      pour l'entête A1 A2 et A3 et le module suivant pour la taille et la couleur
      de ses 3 lignes

      merci
      0
      1. Bonjour

        deja change un peux le debut de UserForm
        Dim Ctrl As Control
        
        Private Sub UserForm_Initialize()
        Me.Caption = "Transport BREGER - Relevé d'Activité"
        Coul = Feuil1.Range("A3").Interior.Color
        Coul1 = Feuil1.Range("A2").Interior.Color
        Coul2 = Feuil1.Range("A4").Interior.Color
        Me.BackColor = Coul
              For Each Ctrl In Me.Controls
                 Select Case Left(Ctrl.Name, 3)
                    Case "Tex"
        '               Ctrl.BackColor = Coul2
                       Ctrl.Font.Name = "Arial Narrow"
                       Ctrl.Font.Size = 14
                       Ctrl.Font.Bold = True
                       Ctrl.Height = 24
                       'Ctrl.Enabled = False
                    Case "Tog"
                       Ctrl.Height = 24
                    Case "Lab"
                       Ctrl.BackColor = Coul
                       Ctrl.ForeColor = Coul1
                       Ctrl.TextAlign = 3
                       Ctrl.Font.Name = "Arial Narrow"
                       Ctrl.Font.Size = 12
                       Ctrl.Font.Bold = True
                      ' ctrl.Height = 20
                    Case "Com"
                       Ctrl.BackColor = Coul
                       Ctrl.Font.Name = "Arial Narrow"
                       Ctrl.Font.Size = 15
                       Ctrl.Font.Bold = True
                  End Select
              Next Ctrl
           Label19.Font.Size = 21
           Label28.Font.Size = 21
           Label21.Font.Size = 23
           Label22.Font.Size = 21
        End Sub
        
        Private Sub UserForm_Activate()
        With Sheets(Feuil1.Name) 'initialisation
             Dernligne = .Columns(6).Find("*", , , , xlByColumns, xlPrevious).Row
                For Lig = 2 To Dernligne
                    ComboBox12.AddItem .Cells(Lig, 6)
                Next Lig
                              
             Dernligne = .Columns(11).Find("*", , , , xlByColumns, xlPrevious).Row
                For Lig = 2 To Dernligne
                    ComboBox1.AddItem .Cells(Lig, 11)
                    ComboBox4.AddItem .Cells(Lig, 11)
                    ComboBox5.AddItem .Cells(Lig, 11)
                Next Lig
                
            Dernligne = .Columns(12).Find("*", , , , xlByColumns, xlPrevious).Row
                For Lig = 2 To Dernligne
                    ComboBox9.AddItem .Cells(Lig, 12)
                    ComboBox10.AddItem .Cells(Lig, 12)
                    ComboBox11.AddItem .Cells(Lig, 12)
                Next Lig
        End With
          ComboBox1.ListIndex = 0
          ComboBox4.ListIndex = 0
          ComboBox5.ListIndex = 0
          ComboBox9.ListIndex = 0
          ComboBox10.ListIndex = 0
          ComboBox11.ListIndex = 0
          ComboBox12.ListIndex = 0
        
        TextBox20.Value = Format(Date, "yyyy")
        TextBox19.Value = Format(Date, "ww", Monday)
        masemaine = TextBox19.Value
        TextBox21.Value = "Chargement"
        TextBox22.Value = "Oui"
        TextBox10.Value = DateValue(Now)
        TextBox14.Value = DateValue(Now)
        TextBox24.Value = DateValue(Now)
        TextBox16.Value = "SAUZEAU"
        TextBox17.Value = "Frédéric"
        TextBox18.Value = "9803 TF 53"
        TextBox23.Value = "9105"
        
           With ToggleButton1
              .Top = TextBox21.Top
              .Left = TextBox21.Left + TextBox21.Width
              .BackColor = RGB(0, 255, 0) 'Vert
           End With
        
           With ToggleButton2
              .Top = TextBox22.Top
              .Left = TextBox22.Left + TextBox22.Width
              .BackColor = RGB(0, 255, 0) 'Vert
           End With
        End Sub
         
        Private Sub ToggleButton1_Click()
           With ToggleButton1 'basculement Chargement ou Déchargement
              If TextBox21.Value = "Chargement" Then
                    TextBox21.Value = "Déchargement"
                    .BackColor = RGB(0, 255, 0) 'Vert
                 Else
                    TextBox21.Value = "Chargement"
                    .BackColor = RGB(255, 0, 0) 'Rouge
              End If
           End With
        End Sub
        
        Private Sub ToggleButton2_Click()
           With ToggleButton2     'basculement Oui ou non
              If TextBox22.Value = "Oui" Then
                    TextBox22.Value = "Non"
                    .BackColor = RGB(255, 0, 0) 'Rouge
                 Else
                    TextBox22.Value = "Oui"
                    .BackColor = RGB(0, 255, 0) 'Vert
              End If
           End With
        End Sub
        

        A+
        Maurice
        0
        1. Bonsoir Maurice
          j'ai rectifié mon userform selon ton schéma.
          et j'ai également modifié le userform_activate et supprimer le module 1 maintenant je peux sélectionner et compléter l'entête de chaque jour de de mon classeur comme je le voulais.
          j'ai également modifié mon module 2 ce qui fait que mes 3 lignes d'entête a1 a2 a3 apparaissent avec les couleurs et la forme que je désirais.
          je peux également compléter toutes les lignes de chaque feuille de la semaine

          merci maurice et @+
          0
          1. Bonjour

            gestion des titre dans UserForm
            http://cjoint.com/?3Cjk2zpQXBJ
            a toi de voir si ca te va

            A+
            Maurice
            0
            1. Bonsoir Maurice,

              J'arrivais au même résultat à l'aide de mon module 2.
              Mais ton travail est autrement plus lisible et qui plus est sans module donc je le conserve. je me suis permis de faire deux modifs
              j'ai inclus chargement ou déchargement au choix dans la ligne A2 du titre
              en gardant la couleur noir et le numéro de la semaine seulement apparaît en rouge et l'année dans A1 sort également en rouge.

              Merci beaucoup Maurice

              Tu n'en as certainement pas encore fini avec moi mais ce soir grosse fatigue ....
              Je ferme
              @+ Maurice
              0
              1. Bonjour

                voila encore des astuces
                pour les Champs obligatoire
                et les ControlTipText
                http://cjoint.com/?3CklHcTY32b
                A+
                Maurice
                0
                1. Bonjour Maurice et merci à nouveau pour ces
                  nouvelles astuces
                  Mon classeur commence à enfler
                  je demeure extrêmement surpris des possibilités
                  de développement de vba et suis probablement loin du compte
                  0
                  1. Bonjour Solene
                    et oui tu a pas fini
                    j'aimerais bien voir ta derniere version
                    A+
                    Maurice
                    0
                    1. ok Maurice
                      dans le courant de la semaine prochaine
                      0