Trouver le numéro de la ligne active

je souhaiterai utiliser le numéro de la ligne qui vient d'être modifier j'ai utiliser activecell.row mais cette formule a une faille puisque quand je modifie une cellule et que j'appuye sur enter cela me donne le numéro de la cellule du dessous j'ai donc modifier avec -1 mais si j'appuye sur gauche droite bas ou haut je me retrouve avec le meme probleme pour retrouver le numéro de la ligne modifié.

code=vb]Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim ligne As Integer, nom As String

ligne = ActiveCell.Row - 1

nom = "ATTENTION STOCK !!!!" & ThisWorkbook.Sheets(5).Cells(ligne, 1) & "!!!! reste : ------> " & ThisWorkbook.Sheets(5).Cells(ligne, 255)

If ThisWorkbook.Sheets(5).Cells(ligne, 255) <= ThisWorkbook.Sheets(5).Cells(ligne, 256) Then

MsgBox nom, vbExclamation + vbOKOnly

End If

End Sub

[/code]

Bonjour,

Tu peux t'inspirer de ce code

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Ligne As Integer, Nom As String, Nouvelle_Adresse As String, Ancienne_Adresse As String
    Application.EnableEvents = False
    Nouvelle_Adresse = ActiveCell.Address
    Application.Undo
    Ancienne_Adresse = ActiveCell.Address
    Sh.Range(Nouvelle_Adresse).Select
    Application.EnableEvents = True
    MsgBox "Ancienne adresse : " & Ancienne_Adresse & Chr(10) & _
    "Nouvelle Adresse : " & Nouvelle_Adresse
End Sub

A+

un grand merci j'ai réussi a adapter la formule pour que ca fonctionne pour moi

en fait j'aurai besoin d'une aide pour le code en voulant encoder dans les ligne je me rend compte que rien ne s'écrit du moins ca s'ecrit puis ca disparait merci de l'aide que vous pourrer apporter a la modification du code

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Ligne As Integer, Nom As String, Nouvelle_Adresse As String, Ancienne_Adresse As String

Application.EnableEvents = False
    Nouvelle_Adresse = ActiveCell.Address
    Application.Undo
    Ancienne_Adresse = ActiveCell.Row
     Application.EnableEvents = True

Ligne = Ancienne_Adresse

Nom = "ATTENTION STOCK               !!!!" & ThisWorkbook.Sheets(5).Cells(Ligne, 1) & "!!!!                                                                             reste   :   ------>   " & ThisWorkbook.Sheets(5).Cells(Ligne, 255)

If ThisWorkbook.Sheets(5).Cells(Ligne, 255) <= ThisWorkbook.Sheets(5).Cells(Ligne, 256) Then

MsgBox Nom, vbExclamation + vbOKOnly
  Sh.Range(Nouvelle_Adresse).Select
End If

End Sub

La condition est donnée par la ligne de code suivante :

If ThisWorkbook.Sheets(5).Cells(Ligne, 255) <= ThisWorkbook.Sheets(5).Cells(Ligne, 256) Then

Pour que le message apparaisse, il faut donc que la valeur de la cellule IU (255) de la 5ème feuille soit inférieure ou égale à celle de IV (256) de la 5ème feuille.

Si le message n'apparait pas :

1 - la condition n'est pas vérifiée (quelle sont les valeurs de IU et IV dans la 5ème feuille ?)

2 - la procédure n'est pas lancée (est-elle bien copiée dans le module ThisWorkbook ?)

3 - joindre le fichier ... c'est plus facile pour les intervenants.

A+

le probleme ne vient pas de la mais du fait que lorsque je veux mettre en sorti de stock un produit le chiffre disparait le message apparait bien apprait

27book2.xlsx (41.08 Ko)

Es ce que quelqu'un a une solution à mon problème.

D'avance merci pour votre aide

Bonjour,

Ton fichier en retour.

J'ai ajouté la mémorisation de la valeur avant l'annulation de la saisie.

A+

30book2.zip (22.94 Ko)
Rechercher des sujets similaires à "trouver numero ligne active"