je tente de mettre au point une procédure évenementielle qui se déclenche
quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est
créée ou modifiée ultérieurement
cette procédure fait appel à une fonction vba qui créée une date calculée
dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste
de données avec une colonne calculée à partir de 2 éléments).
ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur
trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de
la cellule qui à été modifiée, seulement celle qui est nouvellement
sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer
Dim b As Date
k = ActiveCell.Row
If Not Intersect(target, Range("j" & k)) Is Nothing Then
a = Range("h" & k)
b = Format(Range("j" & k).Value, "dd-mm-yy")
Range("l" & k) = datebutoir(a, b)
End If
End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LeSteph
Bonsoir laurent, Pas sûr du tout d'avoir compris ta question. as-tu essayé offset Offset te permet de décaler les ref par rapport à une cellule (cell, ActivCell ou Target) ex: activecell.offset(0,1) décaler la colonne de 1 par rapport à la cellule active. activecell.offset(-1,2) la ligne précédente deux colonnes plus loin. Sinon il y a next ou previous
lSteph
"laurent colledani" a écrit dans le message de news:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
Bonsoir laurent,
Pas sûr du tout d'avoir compris ta question.
as-tu essayé offset
Offset te permet de décaler les ref par rapport à une cellule (cell,
ActivCell ou Target)
ex:
activecell.offset(0,1)
décaler la colonne de 1 par rapport à la cellule active.
activecell.offset(-1,2)
la ligne précédente
deux colonnes plus loin.
Sinon il y a next ou previous
lSteph
"laurent colledani" <laurentcolledani@discussions.microsoft.com> a écrit
dans le message de news:
B1ABB3E5-E5EC-4081-A104-0B7EE408EC5C@microsoft.com...
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche
quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j)
est
créée ou modifiée ultérieurement
cette procédure fait appel à une fonction vba qui créée une date calculée
dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une
liste
de données avec une colonne calculée à partir de 2 éléments).
ma difficulté est de sélectionner le n° de ligne de la cellule de la
colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur
trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je
fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui
est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle
cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de
la cellule qui à été modifiée, seulement celle qui est nouvellement
sélectionnée.
***************voici une partie de ma procédure (qui ne marche
pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer
Dim b As Date
k = ActiveCell.Row
If Not Intersect(target, Range("j" & k)) Is Nothing Then
a = Range("h" & k)
b = Format(Range("j" & k).Value, "dd-mm-yy")
Range("l" & k) = datebutoir(a, b)
End If
End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
Bonsoir laurent, Pas sûr du tout d'avoir compris ta question. as-tu essayé offset Offset te permet de décaler les ref par rapport à une cellule (cell, ActivCell ou Target) ex: activecell.offset(0,1) décaler la colonne de 1 par rapport à la cellule active. activecell.offset(-1,2) la ligne précédente deux colonnes plus loin. Sinon il y a next ou previous
lSteph
"laurent colledani" a écrit dans le message de news:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
docm
Bonjour laurent . Fais plutôt ton test dans l'événement Worksheet_Change et non dans Worksheet_SelectionChange.
Salutations.
"laurent colledani" wrote in message news:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est
créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste
de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
Bonjour laurent .
Fais plutôt ton test dans l'événement Worksheet_Change et non dans
Worksheet_SelectionChange.
Salutations.
"laurent colledani" <laurentcolledani@discussions.microsoft.com> wrote in
message news:B1ABB3E5-E5EC-4081-A104-0B7EE408EC5C@microsoft.com...
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche
quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j)
est
créée ou modifiée ultérieurement
cette procédure fait appel à une fonction vba qui créée une date calculée
dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une
liste
de données avec une colonne calculée à partir de 2 éléments).
ma difficulté est de sélectionner le n° de ligne de la cellule de la
colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur
trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je
fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui
est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle
cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de
la cellule qui à été modifiée, seulement celle qui est nouvellement
sélectionnée.
***************voici une partie de ma procédure (qui ne marche
pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer
Dim b As Date
k = ActiveCell.Row
If Not Intersect(target, Range("j" & k)) Is Nothing Then
a = Range("h" & k)
b = Format(Range("j" & k).Value, "dd-mm-yy")
Range("l" & k) = datebutoir(a, b)
End If
End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
Bonjour laurent . Fais plutôt ton test dans l'événement Worksheet_Change et non dans Worksheet_SelectionChange.
Salutations.
"laurent colledani" wrote in message news:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est
créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste
de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
laurent colledani
merci à lesteph et docm
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est pas simple.
en simplifiant, je cherche à déclencher un évenement (procédure évenementielle) des qu'un utilisateur change la valeur d'une cellule quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est activée après la validation de la cellule changée et non le n° de ligne de la cellule changée après la validation. Si la validation se fait paar la flêche de droite ou gauche , pas de problème. Mais si la validation se fait par "entrée" ou flêche du bas , du haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que l'on vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
merci à lesteph et docm
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est pas
simple.
en simplifiant, je cherche à déclencher un évenement (procédure
évenementielle) des qu'un utilisateur change la valeur d'une cellule
quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la
cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est
activée après la validation de la cellule changée et non le n° de ligne de la
cellule changée après la validation.
Si la validation se fait paar la flêche de droite ou gauche , pas de
problème. Mais si la validation se fait par "entrée" ou flêche du bas , du
haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est
renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que l'on
vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche
quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est
créée ou modifiée ultérieurement
cette procédure fait appel à une fonction vba qui créée une date calculée
dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste
de données avec une colonne calculée à partir de 2 éléments).
ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur
trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de
la cellule qui à été modifiée, seulement celle qui est nouvellement
sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer
Dim b As Date
k = ActiveCell.Row
If Not Intersect(target, Range("j" & k)) Is Nothing Then
a = Range("h" & k)
b = Format(Range("j" & k).Value, "dd-mm-yy")
Range("l" & k) = datebutoir(a, b)
End If
End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est pas simple.
en simplifiant, je cherche à déclencher un évenement (procédure évenementielle) des qu'un utilisateur change la valeur d'une cellule quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est activée après la validation de la cellule changée et non le n° de ligne de la cellule changée après la validation. Si la validation se fait paar la flêche de droite ou gauche , pas de problème. Mais si la validation se fait par "entrée" ou flêche du bas , du haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que l'on vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
LeSteph
Bonsoir, Si ! Outre l'utilisation de offset qui te permettrait directement de fixer en même temps le contenu des cellules adjacentes L'utilisation de Sélection_change (n'avais pas repéré) est comme le dit docm à remplacer par change
il faut alors viser Target et non pas ActiveCell
lSteph
"laurent colledani" a écrit dans le message de news:
merci à lesteph et docm
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est pas simple.
en simplifiant, je cherche à déclencher un évenement (procédure évenementielle) des qu'un utilisateur change la valeur d'une cellule quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est activée après la validation de la cellule changée et non le n° de ligne de la cellule changée après la validation. Si la validation se fait paar la flêche de droite ou gauche , pas de problème. Mais si la validation se fait par "entrée" ou flêche du bas , du haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que l'on vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
amicalement
Bonsoir,
Si !
Outre l'utilisation de offset qui te permettrait directement de fixer en
même temps le contenu des cellules adjacentes
L'utilisation de Sélection_change
(n'avais pas repéré)
est
comme le dit docm
à remplacer par change
il faut alors viser Target et non pas ActiveCell
lSteph
"laurent colledani" <laurentcolledani@discussions.microsoft.com> a écrit
dans le message de news:
4CF8E387-F5A2-4502-B7A6-71941514D7D9@microsoft.com...
merci à lesteph et docm
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est
pas
simple.
en simplifiant, je cherche à déclencher un évenement (procédure
évenementielle) des qu'un utilisateur change la valeur d'une cellule
quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la
cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est
activée après la validation de la cellule changée et non le n° de ligne de
la
cellule changée après la validation.
Si la validation se fait paar la flêche de droite ou gauche , pas de
problème. Mais si la validation se fait par "entrée" ou flêche du bas , du
haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est
renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que
l'on
vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche
quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j)
est
créée ou modifiée ultérieurement
cette procédure fait appel à une fonction vba qui créée une date calculée
dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une
liste
de données avec une colonne calculée à partir de 2 éléments).
ma difficulté est de sélectionner le n° de ligne de la cellule de la
colonne
h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur
trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je
fais
"entrée" au clavier, apres le changement, c'est la ligne du dessous qui
est
sélectionnée (à cause de l'évenement selectionchange)car la nouvelle
cellule
active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne
de
la cellule qui à été modifiée, seulement celle qui est nouvellement
sélectionnée.
***************voici une partie de ma procédure (qui ne marche
pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer
Dim b As Date
k = ActiveCell.Row
If Not Intersect(target, Range("j" & k)) Is Nothing Then
a = Range("h" & k)
b = Format(Range("j" & k).Value, "dd-mm-yy")
Range("l" & k) = datebutoir(a, b)
End If
End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème
Bonsoir, Si ! Outre l'utilisation de offset qui te permettrait directement de fixer en même temps le contenu des cellules adjacentes L'utilisation de Sélection_change (n'avais pas repéré) est comme le dit docm à remplacer par change
il faut alors viser Target et non pas ActiveCell
lSteph
"laurent colledani" a écrit dans le message de news:
merci à lesteph et docm
malheureusement celà ne fonctionne pas. c'est vrai que ma requête n'est pas simple.
en simplifiant, je cherche à déclencher un évenement (procédure évenementielle) des qu'un utilisateur change la valeur d'une cellule quelconque de la colonne H dans une feuille de calul.
LA procédure associée à besoin de connaître le n° de ligne précis de la cellule où il y a eu un changement de valeur.
les solutions proposées sélectionnent le n° de ligne de la cellule qui est activée après la validation de la cellule changée et non le n° de ligne de la cellule changée après la validation. Si la validation se fait paar la flêche de droite ou gauche , pas de problème. Mais si la validation se fait par "entrée" ou flêche du bas , du haut ou par la souris cliquée n'importe où, alors le n° de ligne qui est renvoyé n'est plus bon.
il faudrait une instuction qui retrouve la référence de la cellule que l'on vient de quitter . existe t-elle ?
cordialement
"laurent colledani" wrote:
bonsoir
je tente de mettre au point une procédure évenementielle qui se déclenche quand la valeur dans cellule quelconque de 2 colonnes précises (h) ou (j) est créée ou modifiée ultérieurement cette procédure fait appel à une fonction vba qui créée une date calculée dans la colonne (l) sur la même ligne que mes valeurs h et j (c'est une liste de données avec une colonne calculée à partir de 2 éléments). ma difficulté est de sélectionner le n° de ligne de la cellule de la colonne h ou j dans laquelle (la cellule) on fait le changement de valeur. pPur trouver le n° de ligne, j'utilise """k = ActiveCell.Row"""". Mais si je fais "entrée" au clavier, apres le changement, c'est la ligne du dessous qui est sélectionnée (à cause de l'évenement selectionchange)car la nouvelle cellule active est celle du bas.
je ne trouve pas de procédure évenementielle qui renvoie le n° de ligne de la cellule qui à été modifiée, seulement celle qui est nouvellement sélectionnée.
***************voici une partie de ma procédure (qui ne marche pas )*********
Private Sub Worksheet_selectionchange(ByVal target As Range)
Dim a As Integer Dim b As Date
k = ActiveCell.Row If Not Intersect(target, Range("j" & k)) Is Nothing Then a = Range("h" & k) b = Format(Range("j" & k).Value, "dd-mm-yy") Range("l" & k) = datebutoir(a, b) End If End Sub
merci au 2 personnes qui m'ont déjà aidé sur ce problème