Utilisation de la même macro pour plusieurs feuilles
solene85
Messages postés
414
Statut
Membre
-
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
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
-
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
-
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 -
Bonjour
deja change un peux le debut de UserFormDim 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 -
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 @+ -
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 -
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 -
Bonjour
voila encore des astuces
pour les Champs obligatoire
et les ControlTipText
http://cjoint.com/?3CklHcTY32b
A+
Maurice -
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 -
-