Probleme avec sommeprod vba [Résolu]

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

Votre réponse

12 réponses

Meilleure réponse
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
3
Merci
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é

Merci boomer11 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de boomer11
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
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

Merci ucfoutu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 103 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
0
Merci
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
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
0
Merci
d'accord, je comprends !
merci de me repondre
desolé je dois y aller à ce soir peut etre!!
Commenter la réponse de boomer11
Messages postés
41
Date d'inscription
samedi 30 avril 2011
Dernière intervention
26 juin 2012
0
Merci
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.