Transformer un petit code en macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eliot raymond

XLDnaute Occasionnel
Bonjour a toutes et tous, forum,

Serait'il possible svp de transformer ce petit code ci-joint en macro que j'ai baptiser " AfficheMois ()"

Voir svp le fichier ci-joint, le code est très court et il fonctionne très bien.

Merci a vous et de votre temps

Bonne journée

Raymond
 

Pièces jointes

Re : Transformer un petit code en macro

Bonjour eliot raymond

une proposition:

Code:
Sub aff()
'*** CODE POUR AFFICHER LES DOUZES MOIS ET LE N° DU MOIS

Dim Col As Long
With Range("$B$3")
'If .Address = "$B$3" Then                                   'Mettre N° de l'année en B3 test si ok et affichage des 12 mois
[D3:O3].Value = ""                                          'Efface zone des mois
If .Value <> "" Then
For Col = 1 To 12
Cells(2, 3 + Col) = Col                                     'Affiche les N° des mois
 
With Cells(3, Col + 3)                                      'Affiche les 12 mois
.ClearFormats: .NumberFormat = "@"
.Value = WorksheetFunction.Proper(Format(Col & " " & Range("$B$3").Value, "mmm yy"))
                    
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.Font.Size = 14
.Font.Name = "Arial"
.Font.Italic = True
End With
With [D3:O3].Characters(1, 1).Font                          'Zone de test colonne D3, O3
.ColorIndex = 3                                             'Rouge première lettre du mois
.Bold = True                                                'Gras première lettre du mois
End With
With .Characters(2, Len(.Value)).Font                       'Mode standard
.ColorIndex = 1
.Bold = False
End With
Next Col
End If
'End If
End With
End Sub
 
Re : Transformer un petit code en macro

Bonjour Raymond, salut pierrejean 🙂

Transformer votre code (une macro) en macro ??? Comprends pas 😕

Mais voici un code simple :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$3" Then Exit Sub
Dim cel As Range
Application.ScreenUpdating = False
For Each cel In [D3:O3]
  cel.Font.ColorIndex = xlAutomatic
  cel = Left(cel, InStr(cel, " ")) & Right(Target, 2)
  cel.Characters(1, 1).Font.ColorIndex = 3 'rouge
Next
End Sub
Fichier joint, avec en prime une liste de validation en B3 😛

A+
 

Pièces jointes

Re : Transformer un petit code en macro

Salut PierreJean, Job75

Merci a vous les codes fonctionnent très bien, merci également pour la liste déroulante, mais je l'avais déjà fait
si ça peut servir a d'autres.

Encore merci a vous et vu l'heure un bon app a vous

Une bonne journée

Raymond
 
Re : Transformer un petit code en macro

Re,

Une version (2), avec une macro paramétrée (c'est peut-être ce que vous voulez) :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$3" Then MaMacro [D3:O3], Right(Target, 2)
End Sub

Sub MaMacro(plage As Range, txt As String)
Dim cel As Range
Application.ScreenUpdating = False
For Each cel In plage
  cel = Left(cel, InStr(cel, " ")) & txt
  cel.Characters(2).Font.ColorIndex = xlAutomatic
Next
End Sub
A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
20
Affichages
630
Réponses
9
Affichages
331
Retour