Modification des polices dans plusieurs classeurs (Microsoft Excel)
Hamish est confronté à une tâche ardue: il doit changer les polices par défaut utilisées dans un grand nombre de classeurs Excel. Il possède plus de 100 classeurs et les polices utilisées dans ces classeurs doivent être remplacées par une nouvelle police spécifiée par mandat d’entreprise. (Vous savez comment les mandats d’entreprise peuvent être!)
La manière manuelle d’aborder cette tâche consiste à charger chaque classeur, à parcourir chaque feuille de calcul, à sélectionner les cellules et à modifier les polices de ces cellules. Pour rendre la tâche d’Hamish encore plus complexe, il doit changer plusieurs polices dans chaque classeur. En d’autres termes, étant donné les polices A, B, C et D, Hamish doit changer la police A en C et la police B en D.
La meilleure façon d’aborder ce problème consiste à utiliser une macro.
Il y a tellement de chargement, de recherche et de modification qui sont nécessaires qu’il est logique de reléguer le travail à une macro. La macro suivante devrait faire le travail:
Sub ChangeFontNames() Dim vNamesFind Dim vNamesReplace Dim sFileName As String Dim Wkb As Workbook Dim Wks As Worksheet Dim rCell As Range Dim x As Integer Dim iFonts As Integer Dim sPath As String 'Change these lines as appropriate 'These are the fontnames to find vNamesFind = Array("Arial", "Allegro BT") 'These are the fontnames to replace vNamesReplace = Array("Wingdings", "Times New Roman") 'This is the folder to look for xls files sPath = "C:\foldername\" Application.ScreenUpdating = False iFonts = UBound(vNamesFind) If iFonts <> UBound(vNamesReplace) Then MsgBox "Find and Replace Arrays must be the same size" Exit Sub End If sFileName = Dir(sPath & "*.xls") Do While sFileName <> "" Set Wkb = Workbooks.Open(sPath & sFileName) For Each Wks In Wkb.Worksheets For Each rCell In Wks.UsedRange For x = 0 To iFonts With rCell.Font If .Name = vNamesFind(x) Then _ .Name = vNamesReplace(x) End With Next Next Next Wkb.Close(True) sFileName = Dir Loop Application.ScreenUpdating = True Set rCell = Nothing Set Wks = Nothing Set Wkb = Nothing End Sub
Pour utiliser la macro avec vos propres classeurs, vous devez effectuer plusieurs opérations. Tout d’abord, assurez-vous que tous les classeurs que vous souhaitez modifier sont stockés dans un seul dossier et que vous connaissez le nom du dossier. Ensuite, dans la macro, modifiez les variables définies vers le début de la macro. Modifiez les éléments des tableaux vNamesFind et vNamesReplace pour qu’ils correspondent aux noms des polices que vous souhaitez respectivement rechercher et remplacer. Vous devez ensuite modifier la variable sPath afin qu’elle contienne le chemin d’accès complet au dossier contenant vos classeurs.
(N’oubliez pas une barre oblique inverse sur le chemin.)
Lorsque vous exécutez la macro, il charge chaque classeur du dossier à son tour.
Ensuite, il parcourt chaque feuille de calcul de chaque classeur et examine chaque cellule. Si la cellule contient l’une des polices à rechercher, elle est remplacée par la police de remplacement correspondante. Lorsque la macro est terminée avec le classeur, elle est enregistrée et le prochain classeur est traité.
Ceux qui souhaitent éviter ce type de problème sur les nouvelles feuilles de calcul devraient explorer comment utiliser les styles dans Excel. Vous pouvez définir un nombre illimité de styles et les utiliser dans un classeur. Si vous devez ultérieurement modifier la mise en forme de cellules spécifiques, tout ce que vous avez à faire est de modifier les styles sous-jacents. (Les styles ont été traités dans d’autres numéros de ExcelTips.)
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2526) 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-Changing_Fonts_in_Multiple_Workbooks [Modification des polices dans plusieurs classeurs]
.