Problème macro somme sous excel 2007

Résolu
nirtuo Messages postés 17 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
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 182 Statut Membre 24
 
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 17 Statut Membre
 
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 182 Statut Membre 24
 
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 17 Statut Membre
 
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 19571 Statut Contributeur 5 136
 
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 17 Statut Membre
 
Arf, " erreur de compilation : Sub ou function non définie " pour le dernier code macro ...
Pourtant j'y croyais ;)
0
Raph04 Messages postés 182 Statut Membre 24
 
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 17 Statut Membre
 
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 182 Statut Membre 24
 
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 17 Statut Membre
 
ok ... Nouveau lien :
http://www.cijoint.fr/cjlink.php?file=cj200904/cijHfAHg49.xls
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
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 17 Statut Membre
 
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 9042 Statut Contributeur 1 191
 
Pour la fonction Somme c'est une plage qu'il faut donner.
=SOMME(A1:A20)
et rien d'autre.
0