Dans de nombreux systèmes, les numéros d’identification (tels que le numéro de client, le numéro de commande ou le numéro de produit) doivent comporter un nombre spécifique de caractères. C’est pourquoi on trouve souvent des numéros comme celui-ci: 00000045478. Le concept des numéros d’identification uniques consiste à les forcer à la longueur appropriée. Dans ce cas, les zéros de tête sont insérés pour donner aux nombres la longueur correcte.
Le fonctionnement manuel de cette opération dans Excel est une question fatale. Cependant, grâce à la macro appropriée, l’insertion de zéros non significatifs deviendra facile.
NOTE
Supposons que tous les numéros de client doivent comporter 10 caractères. Par conséquent, vous devez ajouter le nombre approprié de zéros non significatifs à chacun d’eux, de sorte que le nombre comporterait 10 caractères. C’est ce que fera la macro ci-dessous.
En regardant la macro, il convient de rappeler que, pour les adapter à vos propres besoins, vous devez apporter les modifications appropriées à la cinquième étape.
Sub InsertionZero () 'Étape 1: Déclaration des variables Dim MyRange As Range Dim MyCell As Range 'Étape 2: Voulez-vous enregistrer la feuille avant de modifier les cellules? Select Case MsgBox ("L'action ne peut pas être annulée." & "Voulez-vous d'abord enregistrer la feuille?", VbYesNoCancel) Case Is = vbYes ThisWorkbook.Save Case Is = vbCancel Exit Sub End Select 'Étape 3: Définir la plage de cellules Set MyRange = Selection 'Étape 4: Commencez la boucle dans la plage For Each MyCell In MyRange 'Étape 5: Insertion de zéros à gauche de sorte que le nombre comporte dix caractères If Not IsEmpty(MyCell) Then MyCell.NumberFormat = "@" MyCell = "0000000000" & MyCell MyCell = Right(MyCell, 10) End If 'Étape 6: Accédez à la cellule suivante de la plage Next MyCell End Sub
Commentaires
2. Lorsque la macro est lancée, la pile d’annulation est supprimée, ce qui signifie que vous ne pouvez pas annuler les actions effectuées par la macro. Au fur et à mesure que les données changent, il est judicieux de sauvegarder le classeur avant d’exécuter la macro. C’est le cas dans la deuxième étape. Une boîte de message est en cours de livraison, dans lequel des options pour la rédaction d’un classeur sont disponibles. Il offre trois options: Oui, Non et Annuler. Le fait de cliquer sur le bouton Oui enregistre le classeur et poursuit l’opération de macro. Cliquez sur le bouton Annuler pour mettre fin à l’opération de macro. Cependant, un clic sur le bouton Non lancera d’autres opérations de macro sans enregistrer le classeur auparavant.
3. Dans la troisième étape, la plage de cellules cible est transmise à la variable MyRange. Dans ce cas, la plage sélectionnée est déjà sélectionnée dans la feuille. Bien entendu, la variable MyRange peut être définie sur une plage spécifique, par exemple Plage (« A1: Z100 »). De même, si un nom est attribué à la plage. Ensuite, vous pouvez simplement entrer: Range (« MySpecial Name »).
4. Dans la quatrième étape, une boucle est exécutée pour chaque cellule dans la plage indiquée.
5. Lorsque la cellule est activée, à l’étape 5, la macro basée sur la propriété IsEmpty détermine si la cellule est vide. Cela améliore les performances. Si la cellule est vide, aucune action n’est entreprise.
La macro vérifie ensuite si la cellule est formatée en texte. En effet, pour les cellules au format numérique, il n’est pas possible d’insérer des zéros au début – Excel les supprimera automatiquement. Dans la ligne suivante, le format est défini sur @ à l’aide de la propriété NumberFormat. Ce symbole indique le format du texte.
Ensuite, le nombre approprié de zéros joint les valeurs de la macro-cellule. Cela est dû aux dix zéros visibles dans le code et à l’utilisation du signe & qui les lie à la valeur de la cellule. Enfin, un nombre inutile de zéros est supprimé avec la fonction Right. En conséquence, la valeur dans la cellule obtient la longueur souhaitée de dix caractères.
6. Dans cette étape, la boucle passe à la cellule suivante.