Récupérer numéro de ligne lors de modification d'une cellule

Bonjour à tous,

Pour vous expliquer, je voudrais que sur les lignes 15, 17, 19,21 ... jusqu'à 3041, si une cellule des colonnes P ou Q est modifiée, je puisse récupérer le numéro de la ligne en question pour pouvoir effectuer une série d'action sur les cellules U à BT de la ligne correspondante. Quelqu'un aurait-il une idée sur la manière de récupérer le numéro de ligne en cas de modification d'une celulle ? Je cherche la solution la moins couteuse en place et en temps.... évidemment ! J'espère avoir été clair dans mes explications. Merci par avance pour vos éléments de réponse.

RomainBr

Bonjour,

Compte tenu du fait que tu n'as joint aucun fichier ... tu n'auras que des réponses de "méthode" ...

Il te suffit d'avoir une macro évènementielle du type Change ... pour récupérer ce que tu veux ...

Salut James,

Tout d'abord merci pour ta réponse si rapide. Comment fonctionne la macro de type Change ?

Voilà le code que j'ai commencé à écrire. Mais ce n'est utilisable que pour la ligne 15 et je voudrais donc arriver à le généraliser pour qu'il soit utilisable entre les lignes 15 et 3041. Le problème c'est qu'en faisant une boucle For i = 15 To 3041, cela exécuterait la modification sur l'ensemble des lignes 15 à 3041 et c'est extrêmement long. Je voudrais donc que cela ne modifie que la ligne en question.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

Dim j As Integer

Dim DateDebut As Date

Dim DateFin As Date

'***LIGNE 15***

If Not Application.Intersect(Target, Range("$P$15")) Is Nothing Or Not Application.Intersect(Target, Range("$Q$15")) Is Nothing Then

i = 15

For j = 20 To 72 Step 1

DateDebut = Cells(i, 16).Value

DateFin = Cells(11, j).Value

If Cells(i, 2) = "" Then

Cells(i, j).Value = ""

ElseIf Cells(11, j).Value < Cells(i, 16).Value Then

Cells(i, j).Value = 0

ElseIf Cells(i, 19).Value >= Cells(11, j).Value Then

Cells(i, j) = NBJoursOuvres(DateDebut, DateFin) / Cells(i, 17).Value

Else

Cells(i, j) = 1

End If

Next j

End If

End Sub

Est-ce que tu vois ce que je veux dire ?

Merci par avance,

RomainBr

Re,

Manifestement ... tu as déjà attaqué ta macro évènementielle ...et je t'en félicite ...

Pourquoi ne pas l'avoir indiqué dans ton premier message ...????

Maintenant ... pour être franc ... ce code est loin d'être parfait ... mais, celà dit, l'essentiel est ailleurs ...

Quelle tâche doit effectuer ton code ...???

Re,

Je n'ai pas indiqué cette macro car je voulais laissé le champs libre à toute solution qui aurait éventuellement pu être meilleure que la mienne. A ce propos, qu'est ce qui n'est pas parfait dans ce code ? Je suis preneur de toute amélioration.

Par ailleurs... Mea Culpa ! Une simple boucle For autour de ce code traite le sujet sans être vraiment long. Cela relève la ligne éventuellement modifiée sur la colonne P ou la colonne Q et peut ainsi traiter l'opération simplement sur la ligne considérée ! (Ceci dit, pour être vraiment perfectionniste, le traitement ci-dessus entre les lignes 20 et 72 mériterait d'être amélioré pour être plus rapide encore mais ce n'est pas l'objet du post)

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer

For i = 15 To 3041 Step 2

If Not Application.Intersect(Target, Cells(i, 16)) Is Nothing Or Not Application.Intersect(Target, Cells(i, 17)) Is Nothing Then

*** MACRO SELON L'ACTION VOULUE *** (en l'occurrence, pour répondre à ta question, il s'agissait de créer un planning type Gantt en fonction de la date de début que je saisi en colonne P et la date de fin que je saisis en colonne Q)

End If

Next i

End Sub

RomainBr

Re,

Est-ce-que je me trompe en disant ... que tu as trouvé la solution à ton problème ...???

Re,

Non tu ne trompes point. Je me suis aperçu que je n'avais pas assez creusé le sujet avant de poster mon problème et que la solution n'était en fait pas bien loin. J'ai donc posté ce que j'ai rajouté à mon code pour les éventuels intéressés. Cependant, si quelqu'un a un problème dans le genre et que je n'ai pas été assez clair, n'hésitez pas à me contacter et je développerai davantage avec plaisir.

Ceci dit, James, serait-il simplement possible que tu me précises ce que tu ciblais quand tu disais que mon code est loin d'être parfait ?

Merci pour tout.

RomainBr

Re,

Merci pour tes remerciements ...

Rechercher des sujets similaires à "recuperer numero ligne lors modification"