Problème macro somme sous excel 2007
Résolu
nirtuo
Messages postés
17
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
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 ?
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:
- Problème macro somme sous excel 2007
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
- Formule somme excel colonne - Guide
- Liste déroulante excel - Guide
- Somme si couleur excel - Guide
13 réponses
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 :
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
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
Je te remercie de ta réponse rapide !
J'étais parti courir, je vais essayer ça de suite ! Je te tiens au courant
J'étais parti courir, je vais essayer ça de suite ! Je te tiens au courant
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 ;-)
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 " ...
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 " ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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+
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+
Arf, " erreur de compilation : Sub ou function non définie " pour le dernier code macro ...
Pourtant j'y croyais ;)
Pourtant j'y croyais ;)
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.
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.
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
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
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.
Avec ton Excel 2007 fait enregistrer sous, compatible word 97-2003 car je n'ai pas le pack office 2007.
Bonjour tous,
Tu ne sais pas faire une somme sur des cellules discontinue, pour ta sub Test...
A+
Edit:
et tant qu'ont y est :-)
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