L'évènement Change ne peut pas fonctionner ainsi puisqu'en N20 tu as une formule.
Version imprimable
L'évènement Change ne peut pas fonctionner ainsi puisqu'en N20 tu as une formule.
Bonjour Mercatog
Merci pour ta réponse
Alors svp comment serait-il possible de faire ???
Merci et bon Dimanche a toi
Cdlt Ray
Bonjour,
"alors comment serait-il possible de faire ?"
Effectivement si N20 est une formule cela ne marche pas (peut-être parce que workshett_change ne se déclenche qu'avec la frappe sur touche "enter" ???)
Dans ce cas, il faut non pas partir de N20 mais de la cellule d'un des termes de la formule qui lui (le terme) est modifié manuellement.
EXEMPLE : si la formule N20 est " =A1*A2 " alors si A1 (par exemple) est saisie au clavier utiliser A1.
Il y a peut-être une autre solution plus élégante mais je ne la vois pas.
Cordialement,
salut nibledispo
Merci pour ta réponse, Mais après avoir exploser 2 neurones
je n'ai pas compris, :oops:
sauf que ca ne m'a pas l'air simple.
avec un petit code si possible , j'essairai d'adapter :whistle2: et de comprendre
En tout cas merci de ton explication, ca sera surement plus clair pour moi un peu plus tard
Bonne fin d'après midi déja
Cdlt Ray
re....,
Si ta cellule N20 contient une formule, cette formule doit vraisemblablement contenir des cellules modifiées manuellement par l'opérateur.
Exemple N20 = A1*A2 avec A1 modifié manuellement par l'opérateur et non par le code.
alors :
au lieu de mettre dans le code de Marc (target.address = "$N$20") tu poses ("target.address = "$A$1").
je ne sais pas être plus clair.
a+
Salut nibledispo,
Merci de ta réponse et pour les infos, je vais refaire des essais des demain matin
la nuit porte conseil dit-on hum bon :lol:
Voici la formule ci-dessous dans la plage E20:P20
Bonne soirée a toi et merciCode:=SI(MOIS(N1)<>MOIS(AUJOURDHUI());"";SOMME($C$20;-N17;-N18;-N19))
Cdlt Ray
Pourquoi parles tu de la formule dans E20... alors que dans le code proposé par Marc, il est question de N20 ?
Bonjour a tous, forum
Salut nibledispo
je fais un petit récapitulatif de ma demande.
Je souhaiterai svp faire un suivi de la plage E20 à P20 et ce mensuellement.
Lorsque je me trouve pour ce mois en cours dans la colonne "Octobre" donc
cellule N20 copier (juste) la valeur dans la colonne Q a partir de Q2 dans la Feuil(Compte).
Et a chaque fois que la valeur change dans N20 pour X raison continuer de copier la valeur a la suite c'est a dire Q3 puis Q4 et ainsi de suite.
Quand les données seront arrivées en Q26 remonter en Q2 sans effacer la colonne Q
Et faire de mème pour novembre qui sera cette fois la cellule suivante O20 puis
pour décembre cellule P20
et pour janvier 2014 cellule E20 mème principe etc etc
voir svp le fichier #10 pour le telecharger, ne pas tenir compte des infos c'était pour ma première demande qui est résolu, merci.
j'ai essayer de modifier le code de l'ami Marc mais greeuuuu
Merci pour l'aide apporter une bonne semaine a tous
Cdlt Ray
Comme la cellule N20 n'est pas une saisie mais une formule, l'évènement de modification de saisie de cellule ne sert à rien,
donc procédure Worksheet_Change à supprimer …
Je continue volontairement sur la cellule N20 uniquement, code à insérer toujours dans le module de la feuille :Code:
1
2
3
4
5
6
7
8
9
10
11 Private Sub Worksheet_Calculate() Dim R As Long R = [Z1].Value: If R < 2 Then R = 1 If [N20].Value <> Cells(R, 17).Value Then R = R + 1: If R > 26 Then R = 2 [Z1].Value = R Cells(R, 17).Value = [N20].Value End If End Sub
L'ennui de cet événement est son déclenchement peu importe la cellule recalculée …
Je suis en aveugle, je ne peux là télécharger de fichier. Tout dépend donc de la qualité de la présentation du problème …Le mois en cours ? Est-ce à partir de la date système ou cette information se trouve-t-elle dans une cellule de la feuille ?
__________________________________________________________________________________________
On ne dit pas une biroute mais une route à deux voies …
Salut Marc
Merci pour la réponse
j'ai fait l'essai avec ton code modifier et non ca marche pas.
ca me mets une erreur d'éxécution 13
incompatibilité de type
et ca plante mon programme et excel ne redemare mème plus
ligne ci dessous se mets en jaune
la formule dans la cellule N20 pour octobreCode:If [N20].Value <> Cells(R, 17).Value Then
Merci pour ton aide bonne journéeCode:
1
2 =SI(MOIS(N1)<>MOIS(AUJOURDHUI());"";SOMME($C$20;-N17;-N18;-N19))
Cdlt Ray
Mes deux codes proposés fonctionnant évidemment bien de mon côté et ce avec les versions 2003 & 2007 d'Excel
à partir d'un classeur vierge, dernier essai avant de passer mon tour, décaler de un la référence lorsque le compteur est vide
(t'aurais aussi pu l'initialiser !) en remplaçant le 1 de la fin de la ligne n°4 par un 2 …
__________________________________________________________________________________________
Les bourses ne témoignent pas l'état des économies, mais de la psychologie des investisseurs ! (Françoise Giroud)
salut
merci pour les conseils, j'ai suivi, modifier mais ca ne fonctionne pas
toujours plantage d'excel 2007
si je mets le code en commentaire mon programme re-fonctionne bien ????
voila tant pis avoir essayer avoir pas pu.
bon app et bonne journée avec beaucoup de merci
Cdlt Ray
A défaut d'une présentation claire & exhaustive, Last but not least …Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub Worksheet_Calculate() Dim C As Long, R As Long C = Month(Now) + 4 R = [Z1].Value: If R < 2 Then R = 1 If Cells(20, C).Text <> Cells(R, 17).Text Then Application.EnableEvents = False R = R + 1: If R > 26 Then R = 2 [Z1].Value = R Cells(R, 17).Value = Cells(20, C).Value Application.EnableEvents = True End If End Sub
__________________________________________________________________________________________
Merci de cliquer sur :plusser: pour chaque message ayant aidé puis sur :resolu: pour clore cette discussion …
__________________________________________________________________________________________
Des chercheurs qui cherchent, on en trouve. Des chercheurs qui trouvent, on en cherche ! (Charles De Gaulle)
Salut Marc
Merci pour le code de nouveau modifier c'est gentil.
Alors bonne nouvelle, ca fonctionne presque et excel ne se plante plus ouf.
Alors, dès que j'ouvre mon programme le code marche MAIS me copie 8 fois de suite la mème valeur.
Voir svp photo ci-jointe.
j'ai regarder ton code mais je ne vois pas pourquoi ???
Pour ce que tu me dit, je comprends bien et je fait de mon mieux pour expliquer et ce n'ai pas toujours facile, je suis désolé.
(( A défaut d'une présentation claire & exhaustive ))
Je te remercie beaucoup pour ta patience et pour le code bien sur :ccool:
Cdlt Ray
Je vais essayer d'être gentil …
Dans mon classeur de test le code copie seulement une fois la valeur.
Ayant déjà supputé dans ma dernière proposition qu'une autre procédure évènementielle prenait la main dans ton classeur,
expliquant ainsi la présence de la ligne n°8, j'en déduis alors ton code doit aussi jouer avec un autre module de classe …
Si ce n'est pas toi à l'origine du code, voir donc avec son développeur les incidences de ta demande …
Dans le cas contraire, tu dois être capable alors de suivre la progression de ton code
en plaçant un point d'arrêt au début de chaque procédure susceptible de prendre la main quelque soit son module
afin d'utiliser le mode pas à pas (via la touche F8) afin de suivre - comprendre - ce qu'il se passe …
Sinon reste l'espoir d'un intervenant pouvant télécharger ton classeur et consacrer du temps afin d'y démêler le code !
__________________________________________________________________________________________
La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que l'on ne sait pourquoi …
Salut Marc
Ok bien compris, n'étant pas plus féru que ca en VBA comme je l'ai déja dit.
je vais essayer de suivre la méthode pas à pas
Merci pour l'aide apporter, je retourne voir ce que je peux faire.
Bonne après midi
Cordialement Ray
Salut Marc
Voila cette fois ca marche bien avec ton code, merci beaucoup pour ca.
j'ai fini par trouver l'intru,
Dans ThisWorkbook j'avais une macro qui me faisait une mise a jour de la date
dès l'ouverture du programme dans ma Feuil2(Carte Bleue)
j'ai modifier et la c'est bon, ca marche nickel, désolé pour les mauvaises explications que j'ai donné. durant ce post.
sans vouloir abuser, j'ai essayer de changer de couleur d'écriture (peu importe la couleur pour l'instant) quand on arrive a Q26
mais je ni parviens pas, pas faute de chercher.
Alors svp Une dernière modif de ton code et je me debrouille pour la suite du programme.
Encore beaucoup de merci , je te souhaite une bonne soirée
Cdlt Ray
Tous mes codes fonctionnant de mon côté, il s'agit bien d'un problème de contexte de ton classeur …
Voici un exemple tenant compte du changement de couleur d'écriture :[/INDENT][INDENT]Si de nouveau cela ne fonctionne pas de ton côté, toujours la continuité dans le tordu, seul le suivi en mode pas à pas …Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Private Sub Worksheet_Calculate() Dim C As Long, R As Long C = Month(Now) + 4 R = [Z1].Value: If R < 2 Then R = 1 If Cells(20, C).Text <> Cells(R, 17).Text Then Application.EnableEvents = False R = R + 1: If R > 26 Then R = 2 [Z1].Value = R With Cells(R, 17) .Value = Cells(20, C).Value .Font.ColorIndex = 9 - (.Font.ColorIndex = 9) End With Application.EnableEvents = True End If End Sub
En dehors des évènements et autres procédures des autres modules de classe interfèrent aussi
la mise en forme conditionnelle et les fonctions personnalisées figurant dans les formules de calcul.
Je viens de constater dans ta photo de la page précédente les valeurs de la colonne Q sont négatives et rouges !
As-tu pensé au moins à vérifier le B-A-BA, c'est à dire si le format de ces cellules est en Nombre ou en Monétaire
avec pour les Nombres négatifs une présentation rouge sélectionnée ?‼
__________________________________________________________________________________________
Merci de cliquer sur :plusser: pour chaque message ayant aidé puis sur :resolu: pour clore cette discussion …
__________________________________________________________________________________________
L'expérience, c'est une connerie par jour, mais jamais la même …
Salut a tous, Forum
Salut Marc
Merci pour la modification du code
Tout fonctionne bien
mais tu a raison je vais revoir un peu la structure de mon classeur
Encore beaucoup de merci pour ta patience et aussi pour l'aide que tu m'a apporter
Merci également a tous ceux qui m'on aider sur ce coup la, bonne continuation a tous
je clos ce post bonne journée
Cordialement Raymond