VBA si valeur vide ALORS

AHMOST

XLDnaute Junior
Bonjour le forum !

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 !
 

Pièces jointes

  • Test-VBA-valeur vide.xlsm
    13.5 KB · Affichages: 41
  • Test-VBA-valeur vide.xlsm
    13.5 KB · Affichages: 51
  • Test-VBA-valeur vide.xlsm
    13.5 KB · Affichages: 55

Pierrot93

XLDnaute Barbatruc
Re : VBA si valeur vide ALORS

Bonjour,

pas ouvert ton fichier, mais essaie peut être d'utiliser des objets de type "range" :

Code:
Dim calcul1 As Range
Dim Calcul2 As Range
Set calcul1 = Range("B2")
Set Calcul2 = Range("B4")

bonne journée
@+
 

AHMOST

XLDnaute Junior
Re : VBA si valeur vide ALORS

Bonjour,

pas ouvert ton fichier, mais essaie peut être d'utiliser des objets de type "range" :

Code:
Dim calcul1 As Range
Dim Calcul2 As Range
Set calcul1 = Range("B2")
Set Calcul2 = Range("B4")

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
 

Pièces jointes

  • Test-VBA-valeur vide.xlsm
    13.6 KB · Affichages: 35
  • Test-VBA-valeur vide.xlsm
    13.6 KB · Affichages: 43
  • Test-VBA-valeur vide.xlsm
    13.6 KB · Affichages: 45

Pierrot93

XLDnaute Barbatruc
Re : VBA si valeur vide ALORS

Re,

fonctionne comme ceci chez moi (sans les .value)
Code:
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
 

DoubleZero

XLDnaute Barbatruc
Re : VBA si valeur vide ALORS

Bonjour, AHMOST :), Pierrot :D, le Forum,

Une autre suggestion :

Code:
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

A bientôt :)
 

AHMOST

XLDnaute Junior
Re : VBA si valeur vide ALORS

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 ? :confused:


Merci à vous !
 

Pièces jointes

  • Classeur test .xlsm
    14 KB · Affichages: 67
  • Classeur test .xlsm
    14 KB · Affichages: 58
  • Classeur test .xlsm
    14 KB · Affichages: 49

DoubleZero

XLDnaute Barbatruc
Re : VBA si valeur vide ALORS

Re-bonjour,

AHMOST, je ne sais pas si tu as vu :confused: la suggestion déposée ici.

Pour ce qui concerne le dernier problème évoqué, le fichier joint conviendrait-il ?

A bientôt :)
 

Pièces jointes

  • 00 - AHMOST - Si cellule vide....xlsm
    15.8 KB · Affichages: 59
  • 00 - AHMOST - Si cellule vide....xlsm
    15.8 KB · Affichages: 66
  • 00 - AHMOST - Si cellule vide....xlsm
    15.8 KB · Affichages: 67

AHMOST

XLDnaute Junior
Re : VBA si valeur vide ALORS

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 !
 

Discussions similaires

Réponses
7
Affichages
233

Membres actuellement en ligne

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane