Utilisation de la même macro pour plusieurs feuilles

solene85 Messages postés 414 Statut Membre -  
solene85 Messages postés 414 Statut Membre -
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. ThauTheme Messages postés 1564 Statut Membre 160
     
    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
  2. solene85 Messages postés 414 Statut Membre 14
     
    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
  3. Maurice
     
    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
  4. solene85 Messages postés 414 Statut Membre 14
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Maurice
     
    Bonjour

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

    A+
    Maurice
    0
  7. solene85 Messages postés 414 Statut Membre 14
     
    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
  8. Maurice
     
    Bonjour

    voila encore des astuces
    pour les Champs obligatoire
    et les ControlTipText
    http://cjoint.com/?3CklHcTY32b
    A+
    Maurice
    0
  9. solene85 Messages postés 414 Statut Membre 14
     
    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
  10. Maurice
     
    Bonjour Solene
    et oui tu a pas fini
    j'aimerais bien voir ta derniere version
    A+
    Maurice
    0
  11. solene85 Messages postés 414 Statut Membre 14
     
    ok Maurice
    dans le courant de la semaine prochaine
    0