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.
De plus en cherchant sur le net, j'ai trouvé une macro permettant de modifier toutes les formules en format couleur 36.
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
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
Partager