Re
Salut Fo_rum
Voila un essai qui devrait permettre de modifier le tableau a loisir (toutefois en gardant une meme disposition pour chaque mois)
Je manque de temps pour tester et pour commenter
Teste d'abord et je commenterai plus tard
c'est à dire que s'il s'agit d'un résultat de formule, la macro ne prend pas en compte le résultat ..
J'aimerais tellement connaitre cette macro ... !!!
Est-ce-que cette macro ne se mettrait-elle pas, dès son démarrage, en mode de calcul manuel ...???
A +
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Li As Integer
If Target.Count > 1 Then Exit Sub
Li = Target.Row
If Target.Address = "$I$" & Li Or Target.Address = "$O$" & Li Or Target.Address = "$U$" & Li Then
If Target < Range("C" & Li) Then
Cells(Li, "B") = "RUPTURE"
Else
Cells(Li, "B") = "EN STOCK"
End If
End If
End Sub
Re
A mon avis le probleme est le suivant:
Lorsqu'une cellule contient une formule , le changement de son resultat n'aboutit pas necessairement a l'evenement Change
Avec ton fichier James c'est le changement de D6 qui provoque l'execution de la macro (qui par contre sait parfaitement lire le resultat de la formule en I6)
On en vient donc a renforcer la question que tu as posée a savoir
D'ou provient la modification du resultat de la formule ????
Par ailleurs c'est assez consciemment que je me permets de ne pas declarer mes variables dans les fichiers dont l'ampleur ne le justifie pas . C'est une facilité offerte par Excel comme beaucoup d'autres (ex : ne pas citer la feuille s'il est evident que l'on est sur l'active , omettre le .value , [A1] au lieu de Range("A1") etc...)
@PierreJean ...Re
A mon avis le probleme est le suivant:
Lorsqu'une cellule contient une formule , le changement de son resultat n'aboutit pas necessairement a l'evenement Change
Avec ton fichier James c'est le changement de D6 qui provoque l'execution de la macro (qui par contre sait parfaitement lire le resultat de la formule en I6)
On en vient donc a renforcer la question que tu as posée a savoir
D'ou provient la modification du resultat de la formule ????
Par ailleurs c'est assez consciemment que je me permets de ne pas declarer mes variables dans les fichiers dont l'ampleur ne le justifie pas . C'est une facilité offerte par Excel comme beaucoup d'autres (ex : ne pas citer la feuille s'il est evident que l'on est sur l'active , omettre le .value , [A1] au lieu de Range("A1") etc...)
@PierreJean ...
1. Je comprends tes remarques... mais travailler en Option Explicit permet d'éviter certains déboires ... comme tu le sais (surtout sur un code inconnu)
2. Vis à vis du demandeur, j'ai réagi parce quil m'est difficile de lui laisser dire que "les macros ne reconnaissent pas les résultats des formules" ... !!!
3. Sur le fond, le problème reste la macro évènementielle qui déclenchera ta macro : avec le choix entre Change, Selection_Change et Calculate en fonction de ce qui est désiré et du mode de travail de l'utilisateur ...
Je suis sûr que nous sommes parfaitement d'accord sur tous ces points.
A +
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Li As Integer, I As Byte, Contenu
If Target.Count > 1 And Target.Column <> 8 Then Exit Sub
Li = Target.Row
If Li > 5 Then
For I = 1 To 12
Contenu = Cells(Li, 6 * (I + 1) + 2)
If Contenu <> "" Then
If Int(Contenu) < Range("H" & Li) Then C = C + 1
End If
Next
Cells(Li, "B") = IIf(C = 0, "EN STOCK", "RUPTURE")
End If
End Sub
salut tous,
si j'ai compris (seule la colonne H modifiable influe sur la réponse)) ,
Code:Private Sub Worksheet_Change(ByVal Target As Range) Dim Li As Integer, I As Byte, Contenu If Target.Count > 1 And Target.Column <> 8 Then Exit Sub Li = Target.Row If Li > 5 Then For I = 1 To 12 Contenu = Cells(Li, 6 * (I + 1) + 2) If Contenu <> "" Then If Int(Contenu) < Range("H" & Li) Then C = C + 1 End If Next Cells(Li, "B") = IIf(C = 0, "EN STOCK", "RUPTURE") End If End Sub
est d'autant plus normal que l'évènement "Change" teste le changement du contenu de la cellule sélectionnée et non pas le contenu de toutes les cellules de la feuille !lors d'une modification de valeur (via une formule) dans les colonnes par mois, rien ne se passe
alors j'ai testé la colonne H.'Seuls les champs sur fond jaune sont modifiables