Modifier ma macro pour un tableau de commande

Fermé
franck444 Messages postés 12 Date d'inscription dimanche 2 février 2014 Statut Membre Dernière intervention 5 avril 2014 - Modifié par Aranud87 le 9/02/2014 à 10:29
 franck44 - 2 mars 2014 à 08:51
Bonjour,

j'ai un tableau de commande avec une macro que je voudrais modifié.

dans la cellulle H7 la quantité de marchandise livré, cellule I7 les retours de marchandises, la cellule J7 la commande pour le lendemain, cellule K7 les pertes.
Quand j'appui sur mon bouton, la macro efface la cellule K7 et I7 puis range les chiffres de cellulle J7 dans la cellulle Q7et écrase le chiffre qui se trouvait auparavant dans cette cellulle.

Je voudrais que ma macro additionne le chiffre de lacellule I7(retour) avec J7(commande) et que le résultat s'affiche dans la cellule Q7.

VOICI LE MACRO ACTUEL :

Range("H7:I92").Select
Selection.ClearContents
Range("K7:K92").Select
Selection.ClearContents
Range("J7:J92").Select
Selection.Copy
Range("H7").Select
ActiveSheet.Paste
Range("J7:J92").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("Q7:Q21").Select
Selection.ClearContents
Range("Q23:Q45").Select
Selection.ClearContents
Range("Q47:Q73").Select
Selection.ClearContents
Range("Q76:Q87").Select
Selection.ClearContents
Range("H7").Select
End Sub


MERCI à vous qui peut m'aider

A voir également:

2 réponses

Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 39
Modifié par Normad le 9/02/2014 à 11:00
Bonjour,
La question n'est pas très claire entre ce qui est fait et ce qui est à faire

Quand j'appui sur mon bouton, la macro efface la cellule K7 et I7 puis range les chiffres de cellulle J7 dans la cellulle Q7
puis
Je voudrais que ma macro additionne le chiffre de la cellule I7(retour) avec J7(commande) et que le résultat s'affiche dans la cellule Q7

Et la macro actuelle, c'est un peu n'importe quoi (sélections + actions dans la feuille inutiles faites avec l'enregistreur).

Voici un petit code décomposé et commenté selon ce que j'ai compris de la demande :


Sub Report()
'Déclarations des variables (type double si il peut y avoir des décimales)
Dim Retour As Double, Commande As Double, Result As Double

'Initialise les valeurs Retour et Commande
Retour = Range("I7").Value
Commande = Range("J7").Value

'Additionne les deux valeurs dans la variable Result
Result = Retour + Commande

'Reporte le résultat dans la cellule Q7
Range("Q7").Value = Result

'Efface le contenu des cellules i7 à k7
Range("I7:K7").ClearContents
End Sub
0
franck444 Messages postés 12 Date d'inscription dimanche 2 février 2014 Statut Membre Dernière intervention 5 avril 2014
9 févr. 2014 à 14:04
Non ça ne marche pasquand le clique sur mon bouton de commande le résultat ne s'affiche pas dans la celulle "Q7" la celulle reste vide.
0
franck444 Messages postés 12 Date d'inscription dimanche 2 février 2014 Statut Membre Dernière intervention 5 avril 2014
9 févr. 2014 à 14:14
je me suis trompé il faut que le résultat s'affiche dans la celulle H7.

excuse moi
0
franck444 Messages postés 12 Date d'inscription dimanche 2 février 2014 Statut Membre Dernière intervention 5 avril 2014
9 févr. 2014 à 14:40
bon ça marche le résultat s'affiche la la celule H7 PAR CONTRE si je veux que l'opération se face sur toutes les lignes c'est à dire de "I7" à "I92" et "J7" à "J92"
TU PEUX M'INDIQUER LA PROCEDURE.

Merci.
0
franck444 Messages postés 12 Date d'inscription dimanche 2 février 2014 Statut Membre Dernière intervention 5 avril 2014
9 févr. 2014 à 13:42
merci c'est sympa je vais essayer, moi c'est franck, si je peux moi à mon tour faire quelque chose, je suis cuisinier de métier.
Je voudrais t'envoyer le fichier excel en question qui me saire à travailler.

franckla44@gmail.com.
0
Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 39
2 mars 2014 à 08:19
Pas cool de reposer la même question directement ailleurs sans attendre ni même reprendre le code amélioré que j'ai pris du temps à écrire et à commenter !

Pour le faire sur les lignes 7 à 92 c'est simple, il faut utiliser une variable "Ligne" qui aura la valeur du numéro de ligne qu'on indexe dans une boucle For next.

'Déclarer la nouvelle variable après les autres
Dim Ligne as Integer

'Ajout de cette ligne directement après
For Ligne = 7 to 92
Retour = Range("I" & Ligne).Value
'etc... => modifier tous les autres 7 par & Ligne comme ci-dessus


'ajout de cette ligne avant la fin
Next Ligne

End sub
0
excuse moi mais, n'étant pas sure d'avoir une réponse, c'est la première fois que je demandais de l'aide sur un forum. Et pour mettre toutes les chances de mon côté j'ai posé mon problème sur plusieurs sites (sans avoir de réponse d'abord).
C'est sympas de m'avoir répondu. Je vais essayé cette après midi ce que tu viens de me donner, et voir si ça fonctionne.

Merci.

Franck
0