Visual Basic For Applications
Attribuer une valeur par défaut dans une cellule avec VBA !

Une macro simple d’utilisation pour affecter une valeur par défaut à une ou plusieurs cellules d’une feuille Excel.

Principe

Si les solutions que nous vous avons proposé dans notre article ne vous conviennent pas et que vous souhaitez avoir une solution pertinente, efficace et propre, vous pouvez attribuer une valeur par défaut dans une cellule avec VBA.

Nous vous proposons donc un code relativement simple que vous pouvez intégrer à vos fichiers librement. Le seul inconvénient est cependant que l’utilisateur devra autoriser les macros à l’ouverture du fichier.

La macro que nous vous proposons ci-dessous fonctionne automatiquement, c’est-à-dire sans qu’il y ait besoin de l’activer. En gros, à partir du moment ou la cellule concernée est vide, alors le code la remplira directement avec la valeur de votre choix.







La macro

Adapter et utiliser le code

Le code utilise une procédure appelée « évènement » qui permet de déclencher la macro automatiquement aussitôt qu’une action spécifique est réalisée. Il existe plusieurs procédures d’évènements que vous pouvez retrouver ici.

Puisqu’il s’agit d’un évènement qui s’applique au niveau de la feuille de calcul (et non pas au niveau du classeur), le code doit être inscrit dans le module d’objet de la feuille en question et pas dans un module.

Pour utiliser le code ci-dessous, il vous suffit de copier/coller puis de modifier les différentes informations :

  • Indiquez vos cellules cibles dans le Range de l’instruction For Each : vous pouvez indiquer une ou plusieurs cellules adjacentes.
  • Indiquez votre valeur par défaut dans l’instruction cell= »–«  au milieu du If.

Vous pouvez appliquer plusieurs valeurs par défaut à des cellules non-adjacentes simplement en dupliquant le bloc For Each. Le code ci-dessous vous permet d’attribuer 2 valeurs par défaut à 2 plages de cellules.

Attention

Si vous devez affecter des valeurs par défaut à des cellules dans des feuilles de calcul différentes, pensez à dupliquer le code dans chaque module de feuille.


Le code

'Auteur : www.Indexmatch.fr
'Date : 03/2018
 
Private Sub Worksheet_Change(ByVal target As range)
 
    Dim cell As Object
 
' début du bloc For Each à dupliquer si vous souhaitez affecter des valeurs par défaut différentes à plusieurs cellules.
 
    For Each cell In range("A1:B10") ' plage de cellules concernée par la valeur par défaut.
 
        If cell = "" Then
 
            cell = "--" ' à remplacer par la valeur par défaut de votre choix.
 
        End If
 
    Next cell
 
' fin du bloc à dubliquer.
 
    For Each cell In range("A20:B40") ' plage de cellules concernée par la valeur par défaut.
 
        If cell = "" Then
 
            cell = "--" ' à remplacer par la valeur par défaut de votre choix.
 
        End If
 
    Next cell
 
End Sub
Notez nous !
[Moyenne : 4.9]