VBA Excel

Salut tous le monde

je suis debutant au VBA mais j'essaye de faire un code qui est dans le fichier ci joint mais quand j'execute le macro , je n'aurai pas tous les resultats du premier clik il faut faut clicker trois ou quatre fois pour avoir tous les resultats je demande de l'aide pour faire corriger mon code.

edit Dan :supprimé HELP dans titre du sujet

23essai.xlsm (16.20 Ko)

Salut le forum

Merci d'être plus explicite dans tes demandes.

Mytå

Bonjour et bienvenue,

problème de variables (voir Module1)

essaye

Sub calcul()
Dim diamétre As Integer
Dim longueur As Integer
Dim profondeur As Single
Dim largeur As Range
Dim deblai As Range
    Range("d2:h2").ClearContents
        If Application.CountA(Range("a2:c2")) <> 3 Then
            MsgBox ("remplir A-B-C")
            Exit Sub
        End If
    diamétre = Range("A2")      'donnée
    longueur = Range("B2")      'donnée
    profondeur = Range("C2")    'donnée

    Set largeur = Range("D2")   'calcul
    Set deblai = Range("E2")    'calcul

    If diamétre <= 600 Then     'si la valeur du dimétre est <= 600
       largeur = (diamétre / 10 + 60) * 0.01
    Else: largeur = (diamétre / 10 + 80) * 0.01 'sinon
    End If
     deblai = profondeur * largeur * longueur
     Range("F2") = ((diamétre * 0.001 + 0.3) * largeur - (((diamétre * 0.001) ^ 2) / 4) * 3.14) * longueur
     Range("G2") = (profondeur - (diamétre * 0.001 + 0.3)) * largeur * longueur * 0.85
     Range("H2") = deblai - Range("G2")
End Sub

Amicalement

Claude

Salut sitaleb et le forum

Bienvenue

Pour un débutant, tu cumules

Titre : ce qui permet de (re)trouver un sujet similaire déjà traité. Peut-être, quand tu arrives dans un forum, devrais-tu passer par la charte : on y explique généralement plein de choses utiles 8)

Un fichier avec pas moins de 8 modules, dont la moitié est vide, et l'autre ne contient qu'une seule macro. Avec un, regroupant toutes tes macros, ça suffit.

Aucune explication de ce que doit faire la macro : pas ce qu'elle fait, ça, on peut le déduire, mais ce qu'elle est censée arriver à faire ! Et je suppose que c'est la macro calcul qui pose problème ?

Les autres, légèrement... liftées :

Sub Clean02()
Range("B7:D22").ClearContents
Range("B25:J38").Clear
Range("B7").Activate
End Sub

Sub Clean3()
Range("L7:N22").ClearContents
Range("L7").Activate
End Sub

Pour ta macro, je ne suis pas sûr de comprendre :

Sub calcul()
Dim Diamétre As Integer, Longueur As Integer
Dim Profondeur As Single, Largeur As Single, Deblai As Single

Diamétre = Range("A2")
Longueur = Range("B2")
Profondeur = Range("C2")
'Largeur = Range("D2")
'Deblai = Range("E2")

Largeur = IIf(Diamétre <= 600, (Diamétre / 10 + 60), (Diamétre / 10 + 80)) * 0.01
Deblai = Profondeur * Largeur * Longueur

Range("D2") = Largeur
Range("E2") = Deblai
Range("F2") = ((Diamétre * 0.001 + 0.3) * Largeur - (((Diamétre * 0.001) ^ 2) / 4) * 3.14) * Longueur
Range("G2") = (Profondeur - (Diamétre * 0.001 + 0.3)) * Largeur * Longueur * 0.85
Range("H2") = Deblai - Range("G2")
End Sub

Le but du chargement initial de largeur et deblai ?

A+

Rechercher des sujets similaires à "vba"