Je cherche actuellement à créer un code VBA très simple qui permet d'entrer une valeur dans une cellule B2 si cette cellule est vide. Si l'utilisateur entre une valeur alors la macro ne s'active pas.
Exemple que je cherche à faire :
2 calculs à effectuer, calcul1 et calcul2.
Si calcul1 est vide alors calcul1 vaut 1000.
Si calcul2 est vide alors calcul2 vaut 2000.
Voici le code que j'ai fait et qui ne fonctionne pas :
Code:
Sub Worksheet_change(ByVal Target As Range)
Dim calcul1 As Single
Dim Calcul2 As Single
calcul1 = Range("B2")
Calcul2 = Range("B4")
If calcul1 = "" Then
calcul1 = 1000
End If
If Calcul2 = "" Then
Calcul2 = 2000
End If
End Sub
Je vous joint le fichier Excel exemple
J'attends de vos nouvelles bienveillantes ...
Bonne journée !
J'ai changé, mis Range et ajouter Set devant calcul1 et calcul2 et j'ai une erreur d'execution 424 "Objet Requis".
(Pourquoi avoir choisi d'ajouter Set devant ? Je ne comprends pas)
Voici le fichier modifié en PJ
Sub Worksheet_change(ByVal Target As Range)
Dim calcul1 As Range
Dim Calcul2 As Range
Set calcul1 = Range("B2")
Set Calcul2 = Range("B4")
If calcul1 = "" Then
calcul1 = 1000
End If
If Calcul2 = "" Then
Calcul2 = 2000
End If
End Sub
Option Explicit
Sub Worksheet_change(ByVal target As Range)
If target.Address <> "$B$2" And target.Address <> "$B$4" Then Exit Sub
If [b2] = "" Then [b2] = 1000
If [b4] = "" Then [b4] = 2000
End Sub
J'ai actuellement un problème suivant ma 1ère question !
J'ai dans mon fichier :
B1 = Prix unitaire
B2 = Quantité vendue
B3 = CA (Prix * Quantité)
B5 = Bénéfices = 0,1 * CA
Mon code VBA permet aux bénéfices de s'afficher si la cellule est vide suivant cette formule : bénéfices = 0,1 * CA
Code:
Sub Worksheet_change(ByVal Target As Range)
Dim CA As Range
Dim Bénéfices As Range
Set CA = Range("B3")
Set Bénéfices = Range("B5")
If Bénéfices = "" Then
Bénéfices = 0.1 * CA
End If
End Sub
Le code fonctionne puisque les bénéfices sont calculés quand la cellule est vide.
En revanche, le calcul des bénéfices par défaut ne change pas lorsque le CA change (augmentation de la quantité vendue, augmentation du prix unitaire, ...)
Je ne sais pas comment faire pour que le calcul VBA par défaut se fasse automatiquement lorsque la cellule de référence voit sa valeur modifiée, une aide ?
DoubleZéro c'est top ! C'est exactement ce que je cherche.
Est-ce l'utilisation du EnableEvents qui permet à la macro de se mettre à jour automatiquement ? Si tu pouvais expliquer un peu pourquoi cela fonctionne ... Merci !