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
Salut le forum
Merci d'être plus explicite dans tes demandes.
Mytå
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
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 SubAmicalement
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 !
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 SubPour 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 SubLe but du chargement initial de largeur et deblai ?
A+