Probleme avec sommeprod vba [Résolu]

boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 5 juil. 2011 à 21:35 - Dernière réponse : boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention
- 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
Afficher la suite 

12 réponses

Répondre au sujet
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 7 juil. 2011 à 19:59
+3
Utile
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é
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de boomer11
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 7 juil. 2011 à 20:29
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 5 juil. 2011 à 21:49
0
Utile
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
Commenter la réponse de ucfoutu
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 6 juil. 2011 à 06:32
0
Utile
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 :)
Commenter la réponse de boomer11
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 juil. 2011 à 07:12
0
Utile
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
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 juil. 2011 à 07:15
0
Utile
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
Commenter la réponse de ucfoutu
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 6 juil. 2011 à 07:21
0
Utile
J'ai mis la msgbox et elle m'indique FAUX
Le format de la cellule est en format nombre 0,00 .........?
Commenter la réponse de boomer11
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 juil. 2011 à 07:24
0
Utile
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
Commenter la réponse de ucfoutu
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 6 juil. 2011 à 07:30
0
Utile
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
Commenter la réponse de boomer11
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 6 juil. 2011 à 07:33
0
Utile
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
Commenter la réponse de ucfoutu
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 6 juil. 2011 à 07:35
0
Utile
d'accord, je comprends !
merci de me repondre
desolé je dois y aller à ce soir peut etre!!
Commenter la réponse de boomer11
boomer11 41 Messages postés samedi 30 avril 2011Date d'inscription 26 juin 2012 Dernière intervention - 10 juil. 2011 à 20:27
0
Utile
ok merci !!!!
Décidement , je n'ai pas fini d'en apprendre!!!
Commenter la réponse de boomer11

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.