Problème macro somme sous excel 2007

Résolu/Fermé
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009 - 6 avril 2009 à 14:55
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 6 avril 2009 à 18:09
Bonjour,
Je sollicite une nouvelle fois votre aide car je rencontre un nouveau petit problème concernant les macros sous excel 2007.
J'ai créé la macro suivante : If Range("M10")=2 Then Range ("K20").copy Range ("D3")
Cette petite fonction me permet de coller le contenu de la cellule K20 dans un tableau en cellule D3.
Jusque là, pas de problème.
Le souci, c'est que j'aurais voulu que la cellule K20 corresponde à la somme des cellules M17+M18+M19.
Et là, ça se corse. Excel pose une erreur de #Réf! à partir du moment où la formule contient une somme.
Pour l'instant, je dois donc entrer manuellement le chiffre 9 (somme de M17-18-19)par exemple, pour que le bouton sur le lequel j'appuie le copie dans la cellule D3. Si j'automatise, plus rien de fonctionne ...
Quelqu'un aurait-il une petite astuce pour cette manip qui, je suis sûr, est toute bête ?
A voir également:

13 réponses

Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 24
6 avril 2009 à 15:30
Salut,

Alors il y a un truc que je ne suis pas sur de comprendre dans ton explication :
c'est est ce que tu fait la somme des 3 cellules dans la macro ou dans une formule sous excel ?

Parce que pour faire ce que tu veux faire voila comme moi je ferai :
1. Dans la case K20 je mettrai la formule suivante :
=SI(ESTERREUR(M17+M18+M19);"";M17+M18+M19)
Cette formule fait la sommes de tes 3 cellules, et si jamais il y a une erreur (exemple il y un caractère au lieu d'un chiffre dans la formule), et bien ça met du vide dans ta case. Explication : ESTERREUR() verifie ce qu'il y a à l'interieur des parenthèse, si ça renvoie un #ref, alors ça va faire ce qu'il y a après le 1er point virgule, en l'occurence la ça met : "" donc rien, mais tu peux remplacer par 0. Sinon, si il n'y a pas d'erreur et donc que la somme est correct et bien ça met ce qu'il y a après le 2eme point virgule, soit dans notre cas ta somme (M17+M18+M19).

2. Dans la macro je met le code suivant :
If Range("M10")=2 Then
Range ("K20").copy
Range ("D3") .Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False


La dernière fonction permet de faire un collage spécial de la valeur et non de la formule.

Et la ça devrais fonctionner
Si tu a des questions n'hesite pas (en essayant d'être le plus précis possible ;-)
Bonne chance
0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 15:47
Je te remercie de ta réponse rapide !
J'étais parti courir, je vais essayer ça de suite ! Je te tiens au courant
0
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 24
6 avril 2009 à 15:50
Je sais pas si il était passé la 1er fois mais j'ai fait un petit edit sur le paste. Donc prend bien la bonne version ;-)
0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 16:01
Bon, ta formule Si(Erreur) m'a bien permis de cacher le problème de #Réf , mais la somme ne se fait toujours pas.
J'aimerais bien pouvoir mettre mon fichier en pièce jointe pour que cela soit plus compréhensible... Cela est-il possible sur le site ?
Sinon, le macro que tu m'a donné posait problème apparamment... La fonction déboggage s'est mise en route.
Apparition également du message : "impossible d'exécuter le code en mode arrêt " ...
0

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

Posez votre question
Mike-31 Messages postés 18341 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 14 octobre 2024 5 101
6 avril 2009 à 16:03
Salut,

teste un de ces deux codes, le premier est M17+M18+M19 et le second est de M17 à M19

If Range("M10") = 2 Then Range("D3") = "=Sum(M17,M18,M19)"

If Range("M10") = 2 Then Range("D3") = "=Sum(M17:M19)"

A+
0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 16:08
Arf, " erreur de compilation : Sub ou function non définie " pour le dernier code macro ...
Pourtant j'y croyais ;)
0
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 24
6 avril 2009 à 16:12
C'est surement qu'une des tes valeur dans les case M17 à 19 n'est pas un nombre.

Selectionne ces 3 cases, et fait : click droit, format de cellule, dans l'onglet nombre, tu click sur nombre et tu regle comme tu veux...
Ensuite vérifie qu'il n'y ai pas une lettre au lieu d'un chiffre...
Sinon essaye d'uploader ton fichier sur un site spécialisé et de donner le lien. Y'a le site http://www.cijoint.fr/ qui est beaucoup utilisé ici.
0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 16:16
Ok je vais faire ça ...
Sinon, la formule permettant de faire un macro avec une somme est :
sum (x,y,z) ?

Je viens de poster le fichier à l'adresse suivante :
http://www.cijoint.fr/cjlink.php?file=cj200904/cijPe5E0tT.xls

Toutefois, je n'ai pas pu mettre le fichier avec les macros ... Je l'ai donc juste renommé en .xlsx
0
Raph04 Messages postés 158 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 17 mai 2022 24
6 avril 2009 à 16:25
Il ne faut pas juste le renommer.
Avec ton Excel 2007 fait enregistrer sous, compatible word 97-2003 car je n'ai pas le pack office 2007.
0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 16:35
ok ... Nouveau lien :
http://www.cijoint.fr/cjlink.php?file=cj200904/cijHfAHg49.xls
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 16:58
Bonjour tous,
Tu ne sais pas faire une somme sur des cellules discontinue, pour ta sub Test...
Sub test()
    Sheets("Feuil1").Select
    If [M10] = 2 Then [D3] = [M9] + [M12] + [M16]
End Sub

A+
Edit:
et tant qu'ont y est :-)
Sub insert_Note()
    Sheets("Feuil1").Select
    Range("D" & (Range("M10") + 1)) = [K20]
End Sub

0
nirtuo Messages postés 16 Date d'inscription lundi 6 avril 2009 Statut Membre Dernière intervention 27 mai 2009
6 avril 2009 à 17:07
Je t'aime lhermite ;)
Merci ... par contre, je n'ai pas bien compris le coup des cellules discontinues ... Pourquoi cela générait-il une erreur ?
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
6 avril 2009 à 18:09
Pour la fonction Somme c'est une plage qu'il faut donner.
=SOMME(A1:A20)
et rien d'autre.
0