Incrémentation++
josh
-
josh -
josh -
Bonjour,
J'ai besoin d'aide par rapport au code ci-dessous :
Le problème c'est que quand je me place sur la ligne 34, que je tape 0 dans la colonne 10 (J), il marque en attente dans la colonne 28 mais à la ligne 1, comment faire correspondre le résultat "En attente" sur la même ligne ?
Exemple je tape 0 dans la colonne J34, donc "en attente" est écrit dans AB34
Merci d'avance a+!
J'ai besoin d'aide par rapport au code ci-dessous :
Sub test Dim lig As Long For lig = 2 To [J65535].End(xlUp).Row If Cells(lig, 10) = "0" Then Cells(lig, 28) = "En attente" Exit For End If Next lig End Sub
Le problème c'est que quand je me place sur la ligne 34, que je tape 0 dans la colonne 10 (J), il marque en attente dans la colonne 28 mais à la ligne 1, comment faire correspondre le résultat "En attente" sur la même ligne ?
Exemple je tape 0 dans la colonne J34, donc "en attente" est écrit dans AB34
Merci d'avance a+!
4 réponses
Salut,
Ton code est bon, mais :
tu fais une boucle de la ligne 2 à la dernière ligne Col J. En plus, dès que tu as "en attente" dans ta ligne tu sors de la boucle "Exit For". Alors ta macro se lance, teste la ligne 2 si J = 0 alors AB = "en attente" sort de la boucle et s'arrête...
2 choix donc :
- soit tu veux teste toutes tes lignes et alors supprime ta ligne de code : Exit For
- Soit tu ne veux la lancer que pour la ligne ou tu as au préalable sélectionner la cellule en J :
Ton code est bon, mais :
tu fais une boucle de la ligne 2 à la dernière ligne Col J. En plus, dès que tu as "en attente" dans ta ligne tu sors de la boucle "Exit For". Alors ta macro se lance, teste la ligne 2 si J = 0 alors AB = "en attente" sort de la boucle et s'arrête...
2 choix donc :
- soit tu veux teste toutes tes lignes et alors supprime ta ligne de code : Exit For
Sub test Dim lig As Long For lig = 2 To [J65535].End(xlUp).Row If Cells(lig, 10) = 0 Then Cells(lig, 28) = "En attente" End If Next lig End Sub
- Soit tu ne veux la lancer que pour la ligne ou tu as au préalable sélectionner la cellule en J :
Sub test If ActiveCell = 0 Then ActiveCell.Offset(0, 18) = "En attente" End If End Sub
Le problème c'est que j'ai mon évenement worksheet_change dans la feuille et un call sur le code ci-dessus. j'ai supprimé exit for et toujours le même soucis.
J'ai supprimé le call et placé directement le code dans la feuille et tjrs pareil.
Une idée ?
J'ai supprimé le call et placé directement le code dans la feuille et tjrs pareil.
Une idée ?
bonjour,
j'ai toujours le meme problème voici le code :
j'ai 9 feuilles excel, 3 modules
dans chaque code de feuille j'ai l'évenement ;
dans le module type j'ai plusieurs conditions qui colorisent des cellules, écrivent du texte dans les cellules:
Exemple :
public sub type
Dans alerte 1 j'ai une macro qui permet de soustraire une date antèrieur(écrite dans la colonne H) à celle de la date du jour et si la différence est supèrieur à 96h on écrit la valeur "en retard" dans la colonne AB.
dans Alerte 2 j'ai la mm chose mais permet de soustraire une date supèrieur(écrite dans la colonne H) à celle de la date du jour et si la différence est supèrieur à 96h on écrit la valeur "en retard" dans la colonne AB.
Le problème :
Lorsque j'entre une date dans la celluleH32 et qu'elle dépasse 96h par rapport à la date d'aujourdh'ui, au lieu d'écrire en retard dans AB32, il l'écrit en AB1. je ne comprends pas pourquoi, j'ai essayé de supprimé exit for, déplacer les modules etc mais toujours le mm problème.
Merci de m'aider
j'ai toujours le meme problème voici le code :
j'ai 9 feuilles excel, 3 modules
dans chaque code de feuille j'ai l'évenement ;
Private Sub Worksheet_Change(ByVal Target As Range) Call type Call alerte1 Call alerte2 End Sub
dans le module type j'ai plusieurs conditions qui colorisent des cellules, écrivent du texte dans les cellules:
Exemple :
public sub type
Dim lig As Long
For lig = 2 To [A65535].End(xlUp).Row
If Cells(lig, 1) <> "" Then
Cells(lig, 2) = "Ouverture "
Dans alerte 1 j'ai une macro qui permet de soustraire une date antèrieur(écrite dans la colonne H) à celle de la date du jour et si la différence est supèrieur à 96h on écrit la valeur "en retard" dans la colonne AB.
Public Sub Alerte1() Application.EnableEvents = False Dim date96 As Date Dim datejour As Date date96 = 96 datejour = Now Dim lig As Long For lig = 2 To [H65535].End(xlUp).Row If Cells(lig, 8) - datejour > date96 / 24 A Then Cells(lig, 28) = "en retard" Exit For End If Next lig Application.EnableEvents = True End Sub
dans Alerte 2 j'ai la mm chose mais permet de soustraire une date supèrieur(écrite dans la colonne H) à celle de la date du jour et si la différence est supèrieur à 96h on écrit la valeur "en retard" dans la colonne AB.
Public Sub Alerte2() Application.EnableEvents = False Dim date96 As Date Dim datejour As Date date96 = 96 datejour = Now Dim lig As Long For lig = 2 To [H65535].End(xlUp).Row If datejour - Cells(lig, 8) > date96 / 24 A Then Cells(lig, 28) = "en retard " Exit For End If Next lig Application.EnableEvents = True End Sub
Le problème :
Lorsque j'entre une date dans la celluleH32 et qu'elle dépasse 96h par rapport à la date d'aujourdh'ui, au lieu d'écrire en retard dans AB32, il l'écrit en AB1. je ne comprends pas pourquoi, j'ai essayé de supprimé exit for, déplacer les modules etc mais toujours le mm problème.
Merci de m'aider