Macros pour déplacer le signe moins au début d’un nombre , Excel VBA

Dans les systèmes plus anciens, il y a souvent l’erreur que le signe moins a été placé non pas avant le nombre mais après celui-ci. Ainsi, au lieu de -237, 237- apparaît. Cela fera des ravages sur la feuille de calcul, surtout lorsque vous devez effectuer des opérations mathématiques sur les données. La macro fait une boucle pour toutes les cellules de la plage et porte un signe moins avant le nombre.

Comment ca marche?
La macro utilise deux variables Object du type Range. Ils seront utilisés pour opérer sur les cellules de la plage. Pour activer les cellules individuelles de la plage, l’instruction For Each a été utilisée. Chaque fois qu’une cellule est activée, son contenu est converti à l’aide de la fonction Cdbl en type de données Double. Le type Double oblige tous les caractères à être placés au début du nombre.
Sub SigneMoins ()

'Étape 1: Déclarez les variables
    Dim MaPlage As Range
    Dim MesCellules As Range
'Étape 2: enregistrer la feuille de calcul avant d'apporter des modifications aux cellules
    Select Case MsgBox("Les actions ne peuvent pas être annulées." & "Voulez-vous d'abord enregistrer la feuille de calcul?", vbYesNoCancel)
        Case Is = vbYes
        ThisWorkbook.Save
        Case Is = vbCancel
        Exit Sub
    End Select
'Étape 3: définir  la plage de cellules
    Set MesCellules = Selection
'Étape 4: Démarrage d'une boucle pour la plage
    For Each MesCellules In MaPlage
'Étape 5: convertir le type de données en double
    If IsNumeric(MesCellules) Then
        MesCellules = CDbl(MesCellules)
'Étape 6: passez à la cellule suivante de la plage
    Next MesCellules
End Sub

 

1. Dans la première étape, deux variables d’objet de type Range – l’adresse de toute la plage sera stockée dans la variable MesPlages, tandis que la fonction MesCellules sera utilisée pour stocker les données de cellules calculées successivement d’une plage donnée.
2. Lorsque la macro est exécutée, la pile d’annulation sera supprimée. Cela signifie
qu’il ne sera pas possible d’annuler les actions prises par la macro. Étant donné que les données changent, il est utile d’avoir la possibilité d’enregistrer le classeur avant d’exécuter la macro. C’est ce qui se passe à l’étape deux. Une boîte de message est invoquée avec des options pour enregistrer le classeur. Il propose trois options: Oui, Non et Annuler. Cliquez sur Oui pour enregistrer le classeur et continuer la macro. Cliquez sur Annuler pour mettre fin à la macro. En revanche, cliquez sur le bouton Non pour exécuter la macro suivante sans enregistrer le classeur au préalable.
3. À l’étape trois, la plage cible de cellules est transmise à la variable MaPlage. Dans cet exemple, la plage est déjà sélectionnée dans la feuille de calcul. Bien entendu, la variable MaPlage peut facilement être définie sur une plage spécifique, par exemple Range (“A1: Z100”). De même, lorsqu’une plage a un nom. Ensuite, vous pouvez simplement le saisir: Range (“nomdeplage”).
4. À l’étape quatre, une boucle est lancée qui activera tour à tour chaque cellule dans la plage spécifiée.
5. Lorsque la cellule est activée, utilisez l’instruction IsNumeric (étape cinq) pour vérifier que la valeur est formatée sous forme de nombre. Cela permet d’éviter que des modifications soient apportées aux cellules contenant du texte. Ensuite, la fonction Cdbl est appliquée à la valeur de cellule. Cela convertira les données en Double et forcera un signe moins au début du nombre.
6. À l’étape six, la boucle passe à la cellule suivante. Après avoir activé toutes les cellules de la plage macro, il se ferme.
NOTE
Étant donné que la plage a été définie sur la zone actuellement sélectionnée, avant d’exécuter le code, il convient de s’assurer que les cellules contenant les données ont été sélectionnées. En d’autres termes, ne sélectionnez pas la feuille entière. Sinon, toutes les cellules qui ne contiennent pas. données, est resté rempli de zéros. Vous pouvez éviter ce problème en pointant sur la plage de données exacte, par exemple oui: Définissez MyRange = Range (“A1: Z100”).
Comment appliquer une macro?
Pour implémenter cette macro, vous pouvez copier et coller son code dans un module standard. À cette fin:
1. Utilisez la combinaison de touches Alt + F11 pour activer Visual Basic Editor.
2. Dans la fenêtre Projet, cliquez avec le bouton droit sur le nom du projet ou de la feuille.
3. Sélectionnez Insérer / Module.
4. Saisissez ou collez le code.
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
Voir tous les commentaires

Initiation à Excel

Fonctions Excel

Excel VBA

Macros VBA Utiles

Plus d'outils

Sur Facebook

Sur YouTube

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