XL 2010 Pb macro (valider ou non cellule)

MelissaJoubert

XLDnaute Junior
Bonjour à tous !!

J'ai à nouveau besoin de votre aide pour la création d'un macro :D

Je vous envoi mon fichier excel pour que vous compreniez mieux :)
(je vous conseil de l'ouvrir avant de lire la suite sinon vous allez rien comprendre je pense )

On va se préoccuper seulement de l'onglet "feuil1".
J'aimerai que lorsque je coche la case, le PU dans le tableau correspondant ne se compte pas dans le PU moyen "I6".

Exemple:
Si je coche la case du premier tableau "C14", le PU de la case " I13" ne va pas se comptabilisé dans mon PU moyen situé en I6.

J'espere que vous comprenez mon problème :p

Par contre en I6 j'ai mis une formule simple mais il me faudrait également un macro pour toujours m'ajouter les données rempli dans les cases PU car dans ma page je vais rajouter des petits tableaux donc il faudrait que mes prix s'ajoute à chanque fois.

Exemple : Si j'ajoute un tableau en cliquant sur "ajouter", quand je vais remplir ma case PU, la valeur que je vais rentrer doit être comptabilisé dans mon PU moyen automatiquement.

Merci à vous j'ai vraiment besoin de votre aide :) !!
 

Pièces jointes

  • test3.xlsm
    58.8 KB · Affichages: 32

vgendron

XLDnaute Barbatruc
Re..
bon. voici en PJ
ca fonctionne chez moi..

Note.. regarde dans le code VBA dans le module 3
il y a une SUB calcul_PU_moyen()
ET une fonction PUMOyen()

la sub est une procédure qui est appelée chaque fois que tu cliques sur un "." ou ".." ou quand tu ajoutes un tableau.. pour mettre à jour la valeur du PU Moyen

par contre.. si tu modifies une valeur de PU dans un des tableaux.. le calcul ne se met pas à jour. il faut que tu reactives le tableau "." et ".." pour que la procédure soit lancée..

la fonction personalisée. qui fait le meme calcul elle. est lancée à chaque fois que tu modifies..
ca agit comme une fonction excel standard..

essaie
désactive tous les tableaux ".." apparent partout
active un tableau-->ton PU moyen en P7 est actualisé. tout comme le PU moyen (fonction utilisée) en P8
maintenant. modifie la valeur du PU dans ton tableau
le PU Moyen P7 n'a pas bougé. par contre. le PU moyen P8 est à jour.

sinon, un conseil: pour identifier plus facilement un bug. utilises le mode pas à pas de VBA (touche F8)
ca te permet de voir ce que fait le code ligne par ligne.. tu peux ainsi surveiller les valeurs des indices et voir s'ils se mettent au bon endroit, les contenus des variables etc etc.
 

Pièces jointes

  • test6 (1).xlsm
    62.6 KB · Affichages: 33

MelissaJoubert

XLDnaute Junior
Oui en effet la ça marche !! Super merci :D
Mais en faite le petit problème c'est quand je rentre un autre PU, en appuyant sur entré j'aimerai que le résultat ce mette dans le PU moyen sans avoir a cliquer 2 fois sur le bouton "."

Après je sais pas si c'est possible :)
Merci pour ton aide en tout cas, tu gère vraiment sur les vba
 

vgendron

XLDnaute Barbatruc
Mais en faite le petit problème c'est quand je rentre un autre PU, en appuyant sur entré j'aimerai que le résultat ce mette dans le PU moyen sans avoir a cliquer 2 fois sur le bouton "."

relis mon dernier post. avec la fonction personnalisée. qui est déjà dans la PJ
cette fonction s'appelle PUMOyen()
et dans ta feuille Excel en P8 je l'ai utilisée.. P8=PUMOyen()
 

vgendron

XLDnaute Barbatruc
elle fait la MEME chose que la procédure SUB
mais elle n'a PAS besoin d'etre lancée ou appelée par une macro ou bouton
elle se comporte comme une fonction standard d'excel - une de celles que tu utilises dans la feuille: ex la fonction Somme
des que tu modifies une valeur de PU, Excel utilise cette fonction personnalisée pour mettre à jour le PU moyen..
c'est ce que je te décrivais au dessus.

donc. avec cette fonction. plus besoin de la SUB
 

vgendron

XLDnaute Barbatruc
Note.. regarde dans le code VBA dans le module 3
il y a une SUB calcul_PU_moyen()
ET une fonction PUMOyen()

la sub est une procédure qui est appelée chaque fois que tu cliques sur un "." ou ".." ou quand tu ajoutes un tableau.. pour mettre à jour la valeur du PU Moyen

par contre.. si tu modifies une valeur de PU dans un des tableaux.. le calcul ne se met pas à jour. il faut que tu reactives le tableau "." et ".." pour que la procédure soit lancée..
c'est ce que tu souhaites ne PLUS avoir à faire.

d'ou la solution fonction personalisée. qui fait le meme calcul. Elle est lancée à chaque fois que tu modifies. ET clique sur Entrée.
ca agit comme une fonction excel standard..

pour voir l'effet: essaie
désactive tous les tableaux
active un tableau-->ton PU moyen en P7 est actualisé. tout comme le PU moyen (fonction utilisée) en P8
maintenant. modifie la valeur du PU dans ton tableau
le PU Moyen P7 n'a pas bougé. par contre. le PU moyen P8 est à jour.
 

vgendron

XLDnaute Barbatruc
voila !!
tu peux utiliser la fonction en P7 ou meme ou tu veux dans la feuille
et la macro SUB ne sert plus à rien
et du coup. dans la macro qui te permet d'ajouter des tableaux. il faut supprimer les lignes ou on lance la sub.. inutile de le faire x fois alors que la fonction est la..
 

MelissaJoubert

XLDnaute Junior
Finalement j'ai réussi toute seul pour le calcul pondéré :D Merci quand même !!

Petite question sur ce code :

If Target.Count = 1 And Target.Column = 2 Then 'colonne 2 car colonne B
If LCase(Target.Value) = "affaire" Then 'nom de la case affaire
'ligne active
maligne = Target.Row
Rows(maligne + 2 & ":" & maligne + 10).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'copier tableau, compter ligne par rapport à celle de référence (avec affaire)
Rows(maligne + 11 & ":" & maligne + 19).Copy Destination:=Range("A" & maligne + 2)

'décale sélection d'une ligne
Range(Target.Address).Offset(1, 0).Select
End If

J'aimerai que le cadre que je copie colle (donc le premier) se colle en dessous de celui ci et pas eu dessus.
Comme ça mon cadre référent sera toujours la premier.
J'espere que tu comprend !:p

Et de plus j'ai remarqué un petit problème pck le but final est que je vais devoir masquer tout le bloc (qui sera vide) ça sera le bloc référence mais le problème c'est que actuellement, quand je masque tout mon bloc, et que j'appui sur insérer bloc, ça ne marche pas, as-tu une solution stp ?

Merci pour ton aide
 

Discussions similaires

Statistiques des forums

Discussions
312 161
Messages
2 085 855
Membres
103 005
dernier inscrit
gilles.hery