Utilisation de la même macro pour plusieurs feuilles

Fermé
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 - 7 mars 2015 à 23:53
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 - 14 mars 2015 à 11:58
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
A voir également:

10 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
8 mars 2015 à 01:29
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 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 13
8 mars 2015 à 14:35
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
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 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 13
8 mars 2015 à 23:57
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
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 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 13
9 mars 2015 à 22:52
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
Bonjour

voila encore des astuces
pour les Champs obligatoire
et les ControlTipText
http://cjoint.com/?3CklHcTY32b
A+
Maurice
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 13
14 mars 2015 à 10:33
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
Bonjour Solene
et oui tu a pas fini
j'aimerais bien voir ta derniere version
A+
Maurice
0
solene85 Messages postés 391 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 9 janvier 2016 13
14 mars 2015 à 11:58
ok Maurice
dans le courant de la semaine prochaine
0