David doit rechercher et modifier chaque occurrence d’un format de cellule spécifique dans un classeur à plusieurs feuilles de calcul. Par exemple, il peut avoir besoin de rechercher toutes les cellules qui sont formatées en tant que devise et de modifier ce format en général. Il se demande comment accomplir la tâche.

La meilleure façon de réaliser cette tâche dépend de la version d’Excel que vous utilisez. Si vous utilisez Excel 2003, vous pouvez simplement utiliser l’outil Rechercher et remplacer d’Excel pour effectuer la modification. Suivez ces étapes:

  1. Appuyez sur Ctrl + H. Excel affiche l’onglet Remplacer de la boîte de dialogue Rechercher et remplacer.

  2. Cliquez sur le bouton Options, si nécessaire, pour agrandir la boîte de dialogue.

(Voir la figure 1.)

  1. Cliquez sur le bouton Format à droite de la ligne Rechercher. Excel affiche la boîte de dialogue Rechercher un format.

  2. Assurez-vous que l’onglet Numéro est affiché. (Voir la figure 2.)

  3. Utilisez les commandes de la boîte de dialogue pour spécifier le format à rechercher.

  4. Cliquez sur OK pour fermer la boîte de dialogue Rechercher une police.

  5. Cliquez sur le bouton Format à droite de la ligne Remplacer par. Excel affiche la boîte de dialogue Remplacer le format.

  6. Assurez-vous que l’onglet Numéro est affiché.

  7. Utilisez les commandes de la boîte de dialogue pour spécifier le format que vous souhaitez utiliser comme remplacement.

  8. Cliquez sur OK pour fermer la boîte de dialogue Remplacer la police.

  9. Utilisez la liste déroulante Dans pour choisir Classeur.

  10. Cliquez sur Remplacer tout.

Si vous utilisez une ancienne version d’Excel, l’outil Rechercher et remplacer ne vous permet pas de rechercher ou de remplacer la mise en forme. Au lieu de cela, vous devez utiliser une macro pour effectuer les modifications. Voici un exemple de macro qui parcourt simplement toutes les cellules utilisées dans le classeur et définit tous les formats sur Général.

Sub FormatGeneral()

Dim iSht As Integer     Dim rng As Range

For iSht = 1 To Sheets.Count         Set rng = Worksheets(iSht).UsedRange         With rng             .NumberFormat = "General"

End With     Next End Sub

Si vous souhaitez être un peu plus sélectif dans les formats remplacés, vous devrez vérifier le format existant des cellules au fur et à mesure que vous les parcourez. Par exemple, la macro suivante recherche toutes les cellules mises en forme en tant que devise, puis modifie uniquement ces cellules en un format général.

Sub CurrencyToGeneral()

Dim iSht As Integer     Dim rng As Range     Dim c As Range

For iSht = 1 To Sheets.Count         For Each c In Worksheets(iSht).UsedRange.Cells             If c.NumberFormat = "$#,##0.00" Then                 c.NumberFormat = "General"

End If         Next c     Next End Sub

Si vous souhaitez rendre la macro encore plus flexible, vous pouvez lui demander de cliquer sur une cellule qui utilise le format que vous souhaitez rechercher, puis de cliquer sur une cellule qui utilise le format dans lequel vous souhaitez modifier ces cellules.

Public Sub UpdateFormats()

Dim rFind As Range     Dim rReplace As Range     Dim rNextCell As Range     Dim sNewFormat As String     Dim sOldFormat As String     Dim ws As Worksheet

On Error Resume Next

' Determine the old format     Do         Set rFind = Application.InputBox( _           prompt:="Select a cell that uses the format " & _           "for which you want to search", _           Type:=8)



If rFind Is Nothing Then             If MsgBox("Do you want to quit?", vbYesNo) = vbYes Then                 Exit Sub             ElseIf InStr(1, rFind.Address, ":", vbTextCompare) > 0 Then                 MsgBox "Please select only one cell."

Set rFind = Nothing             End If         End If     Loop Until Not rFind Is Nothing     sOldFormat = rFind.NumberFormat

' Determine the new format     Do         Set rReplace = Application.InputBox( _           prompt:="Select a cell using the new format", _           Type:=8)



If rReplace Is Nothing Then             If MsgBox("Do you want to quit?", vbYesNo) = vbYes Then                 Exit Sub             ElseIf InStr(1, rReplace.Address, ":", vbTextCompare) > 0 Then                 MsgBox "Please select only one cell."

Set rReplace = Nothing             End If         End If     Loop Until Not rReplace Is Nothing     sNewFormat = rReplace.NumberFormat

' Do the replacing     For Each ws In ActiveWorkbook.Worksheets         For Each rNextCell In ws.UsedRange             If rNextCell.NumberFormat = sOldFormat Then                 rNextCell.NumberFormat = sNewFormat             End If         Next rNextCell     Next ws     MsgBox "The selected format has been changed."

End Sub

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (9865) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Replacing_Cell_Formats [Remplacement des formats de cellule].