Bonjour,

Totalement novice en VBA (j'ai démarrer il y a deux jours). Je dois réaliser un programme me permettant de selectionner toutes les cellules excel avec le format ("dd/mm/yyyy) et de les modifier en format ("dd/mmm/yyyy). J'aimerais répéter cette opération pour toutes les feuilles excel de mon document.

J'ai réussi à écrire une petite macro mais seulement elle ne marche que pour la cellule active. J'ai besoin de votre aide afin de pouvoir modifier cette macro pour l'étendre à toute la feuille excel.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Sub Date_Format()
Dim Sh As Variant
For Each Sh In ActiveWorkbook.Worksheets
        ActiveCell.Select
        If IsDate(ActiveCell.Value) Then
            ActiveCell.Value = Format(ActiveCell.Value, "dd/mmm/yyyy" )
        End If
 
Next        
End Sub
De plus en cherchant sur le net, j'ai trouvé une macro permettant de modifier toutes les formules en format couleur 36.

Pensez-vous que je peux adapter cette macro à mon cas. Si oui, je suis un peu perdu pour les modifs à executer.

Merci beaucoup pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Sub monplanWB()  
'***** SELECTION DES CELLULES DONT LE FORMAT EST 36 (jaune pale)******  
 
Dim objRange As Range, PlageYellow As Range, objCell As Range, PlageResult As Range  
 
'réduction de la plage  
For Each objRange In ThisWorkbook.Worksheets(1).Columns  
    If IsNull(objRange.Interior.ColorIndex) Then  
        If PlageYellow Is Nothing Then  
            Set PlageYellow = objRange  
        Else  
            Set PlageYellow = Application.Union(objRange, PlageYellow)  
        End If  
    End If  
Next  
'travail en ligne  
For Each objRange In ThisWorkbook.Worksheets(1).Rows  
    If IsNull(objRange.Interior.ColorIndex) Then  
        For Each objCell In Application.Intersect(objRange, PlageYellow).Cells  
            If objCell.Interior.ColorIndex = 36 Then  
                If PlageResult Is Nothing Then  
                    Set PlageResult = objCell  
                Else  
                    Set PlageResult = Application.Union(objCell, PlageResult)  
                End If  
            End If  
        Next  
    End If  
Next  
PlageResult = PlageResult.Value  
 
End Sub