Ignorer Cellule Vide dans la formule VBA

Bonjour à tous,

Et voici je m’adresse à nouveau à ce forum en espérant que vous allez m’aider. ( sans

J’ai 3 parties pour lesquelles je dois calculer les valeurs X et chaque fois elles sont différentes. Pour calculer ces valeurs j’ai mis en place une formule suivante.

'calcul

Sub Res()

With Worksheets("1").Range("B7")

.Formula = "=B5/B6"

.Value = .Value

End With

With Worksheets("1").Range("C7")

.Formula = "=C5/C6"

.Value = .Value

End With

With Worksheets("1").Range("D7")

.Formula = "=D5/D6"

.Value = .Value

End With

End Sub

J’ai créé le bouton qui fait appel à des formules et calcule ma valeur X sauf que chaque fois j’ai le nombre de partie différente c’est-à-dire soit qu’une seule partie soit 1 et 2, soit 1.2 et 3. Mon souci est quand je remplis trois parties tout ce calcule bien mais il suffit que je ne remplis pas la 2 ou 3 partie avec les valeurs qui se trouvent dans les cellules C5/C6 , D5/D6 je reçois l’erreur…

Ma question peut vous parâtre simple mais pourriez-vous me donner les conseils sur le code que je dois intégrer dans le VBA pour que si j’ai les cellules vides (C5/C6 ou D5/D6 ou C5/C6/D5/D6) mon calcul les ignorera, calculera que les parties remplies et n’affichera aucune erreur. Je voudrais aussi savoir si mon calcul peut être réalisé sans utiliser le bouton.

Je vous remercie une fois de plus

46test.xlsm (16.15 Ko)

Bonjour,

A tester

Pour l'utilisation ou pas du bouton, tout dépend du contexte, qui m'est inconnu.

Option Explicit
'calcul
Public Sub Res()
Dim ws As Worksheet

    Set ws = Worksheets("1")

    With ws
        If .[B6] <> 0 Then .[B7] = .[B5] / .[B6]
        If .[C6] <> 0 Then .[C7] = .[C5] / .[C6]
        If .[D6] <> 0 Then .[D7] = .[D5] / .[D6]
    End With

    Set ws = Nothing

End Sub

Bonjour Jean-Eric,

Je vous remercie pour votre réponse ! Votre code fonctionne ! Merci encore !

En ce qui concerne le bouton je voudrais juste ne pas utiliser le bouton pour faire appel au code (mais garder le code)

Par exemple quand on place directement la formule dans la cellule sans utiliser le VBA tout se calcule automatiquement et sans bouton. Est-ce possible dans le VBA ?

Merci une fois de plus

Re,

Pour le principe.

A copier dans le module de la feuille "1".

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("B5:D6")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If [B6] <> 0 Then [B7] = [B5] / [B6]
        If [C6] <> 0 Then [C7] = [C5] / [C6]
        If [D6] <> 0 Then [D7] = [D5] / [D6]
    End If
End Sub

Magnifique Le code fonctionne parfaitement ! Merci beaucoup Jean-Éric !

Rechercher des sujets similaires à "ignorer vide formule vba"