Probleme avec sommeprod vba

Résolu
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012
- 5 juil. 2011 à 21:35
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012
- 10 juil. 2011 à 20:27
bonjour,

C'est peut être un problème tout bête mais je ne vois pas où est l'erreur!!!

La macro fonctionne par l'intermediaire d'un userform, elle marche très bien quand la variable est définie en integer mais pas en single ?
or j'ai besoin du résultat en décimal

Private Sub Valider_Click()

Dim superficie, superficie2 As Integer

Range("B2").Value = Largeur.Value'Textbox 1
Range("C2").Value = Longueur.Value' Textbox 2

superficie = ((Largeur.Value * Longueur.Value) / 1000000)
superficie2 = superficie - ((superficie * 10) / 100)
Range("G1").Formula = "=" & superficie2 & " - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C[-1]:R[44]C[-1])"

End Sub

Merci

12 réponses

boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

7 juil. 2011 à 19:59
salut,

j'ai bucher sur le problème et j'ai trouvé une parade mais je pense que c'est du bricolage...!!!
je mets la macro modifiée, dès fois que ça pourrait servir !!!
si on pouvait m'expliquer pourquoi j'ai eu ce genre de problème, ce serais sympa!!

Private Sub Valider_Click()

Dim superficie, superficie2 As Single
Range("B2").Value = Largeur.Value
Range("C2").Value = Longueur.Value

superficie = CSng((Largeur.Value * Longueur.Value) / 1000000)
superficie2 = CSng(superficie - ((superficie * 10) / 100))
valeur = Replace(superficie2, ",", ".")
Range("G1").Formula = "=" & valeur & " - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C:R[44]C)"
UserForm1.Hide

End Sub


En revanche le résultat dans mon tableau est toujours avec une virgule ???

merci ucfoutu pour le temps accordé
3
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
7 juil. 2011 à 20:29
En revanche le résultat dans mon tableau est toujours avec une virgule ???

si ce que tu appelles "ton tableau" est ta feuille Excel de calculs et que tes paramètres régionaux sont la virgule comme séparateur décimal ===>> rien de plus normal si la colonne concernée est formatée en nombre


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
3
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
5 juil. 2011 à 21:49
Bonjour,

Une textbox contient du String et non du numérique
intéresse-toi aux Fonctions de conversion de types de données
(dans ton aide VBA)


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

6 juil. 2011 à 06:32
salut ucfoutu,
merci de me repondre!
Effectivement je n'y avait pas pensé,
mais ça fonctionne toujours pas !!
Private Sub Valider_Click()

Dim superficie, superficie2 As Single

Range("B2").Value = Largeur.Value
Range("C2").Value = Longueur.Value

superficie = CSng((Largeur.Value * Longueur.Value) / 1000000)
superficie2 = CSng(superficie - ((superficie * 10) / 100))
Range("G1").Formula = "=" & superficie2 & " - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C[-1]:R[44]C[-1])"

End Sub


je ne comprends pas pourquoi la formule marche bien quand je l'inscrit directement dans la cellule avec les mêmes données et non pas l'intermediaire de la userform!!!

Ps: absent toute la journée, si réponse :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
6 juil. 2011 à 07:12
Juste avant ton End Sub, mets :
Range("G1").Formula = "=" & superficie2 & " - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C[-1]:R[44]C[-1])"

et dis-nous ce qui s'affiche en exécution.
Dis-nous également quel est le format de la cellule G1
____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
6 juil. 2011 à 07:15
Et flute !
J'ai oublié de mettre Mxsgbox !
MsgBox Range ..... etc....



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

6 juil. 2011 à 07:21
J'ai mis la msgbox et elle m'indique FAUX
Le format de la cellule est en format nombre 0,00 .........?
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
6 juil. 2011 à 07:24
Pardi (je suis mal réveillé) ===>>
Msgbox "=" & superficie2 & " - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C[-1]:R[44]C[-1])"


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

6 juil. 2011 à 07:30
elle me met :

=3,52 - SUMPRODUCT(R[5]C[-2]:R[44]C[-2],R[5]C[-1]:R[44]C[-1])"

3,52 étant le resultat de la superficie2
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
6 juil. 2011 à 07:33
et c'est bien là le problème !
3,52 !
A transformer en
3.52



____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
0
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

6 juil. 2011 à 07:35
d'accord, je comprends !
merci de me repondre
desolé je dois y aller à ce soir peut etre!!
0
boomer11
Messages postés
39
Date d'inscription
samedi 30 avril 2011
Statut
Membre
Dernière intervention
26 juin 2012

10 juil. 2011 à 20:27
ok merci !!!!
Décidement , je n'ai pas fini d'en apprendre!!!
0