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

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
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Maurice
 
Bonjour

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

A+
Maurice
0
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
Maurice
 
Bonjour

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