Modifier les noms de plages de cellules avec Excel VBA

Le monde change constamment, presque rien n’est permanent. Il peut donc arriver que vous souhaitiez modifier les noms que vous utilisez. Bien sûr, vous ne voulez pas toucher et renommer tous les noms individuellement, mais utilisez une macro qui effectue cette tâche confortablement et sans trop d’effort.
Dans l’exemple suivant, supposons qu’une entreprise souhaite travailler à l’international à l’avenir. Par conséquent, tous les noms de cellules francais utilisés doivent être convertis en noms de cellules anglais. Entre autres choses, une liste de clients doit être implémentée dans laquelle le nom de cellule se compose du nom du client réel avec le préfixe CLIENT. Ce préfixe doit maintenant être renommé CUSTOMER. Tous les noms utilisés dans le classeur doivent être vérifiés pour cela.

Sub ModifierPlageCell()
Dim zoneNom As Object
Dim VglNom As String
For Each zoneNom In ThisWorkbook.Names
VglNom = zoneNom.Name If InStr(VglNom, "Client") > 0 Then VglNom = Application.Substitute(VglNom, _
"Client", "Customer")
zoneNom.Name = VglNom
End If
Next zoneNom
End Sub

 


À l’aide de la liste des noms, vous pouvez déterminer tous les noms du classeur. Étant donné que vous devez utiliser la fonction InStr pour effectuer la vérification du nom, affectez la variable d’objet nommée zones à la variable de chaîne VglName. Utilisez maintenant la fonction InStr pour déterminer si la partie de texte CUSTOMER apparaît dans le nom respectif. Si tel est le cas, la fonction signale la première occurrence de la partie texte, une valeur supérieure à zéro. Dans ce cas, la fonction de table de substitution est utilisée. Passez d’abord la partie de texte à remplacer (CLIENT) à cette fonction puis la nouvelle chaîne de caractères (CLIENT). Enfin, affectez la variable de chaîne révisée VglNom à la variable d’objet NamedRanges, ce qui rend le changement de nom parfait.

Sub ModifierPlageCell
Dim zoneNom As Object
Dim VglNom As String
For Each zoneNom In ThisWorkbook.Names
VglNom = zoneNom.Name If InStr(VglNom, "Customer") > 0 Then VglNom = Application.Substitute(VglNom, _
"Customer", "Client") zoneNom.Name = VglNom
End If
Next zoneNom
End Sub

 

S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Fonctions Excel

Macro VBA Utiles

Excel Pratique

Programmation VBA

Sur Facebook

Sur YouTube

0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
()
x