Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
ceci devrait être suffisant :
'Déclaration de la variable dans le haut de ton module feuille
Dim Rg As Range
'Code à copier dans ledit module feuille où l'action se déroule
'----------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Lorsque tu cliques dans la feuille
If Rg Is Nothing Then
If TypeName(Selection) = "Range" Then
Set Rg = Selection
Else
Set Rg = ActiveCell
End If
End If
MsgBox Rg.Address
'ton code
'Mise en mémoire de ta sélection
Set Rg = Target
End Sub
'----------------------------------------
"Lulu la Nantaise" a écrit dans le message de news:
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
ceci devrait être suffisant :
'Déclaration de la variable dans le haut de ton module feuille
Dim Rg As Range
'Code à copier dans ledit module feuille où l'action se déroule
'----------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Lorsque tu cliques dans la feuille
If Rg Is Nothing Then
If TypeName(Selection) = "Range" Then
Set Rg = Selection
Else
Set Rg = ActiveCell
End If
End If
MsgBox Rg.Address
'ton code
'Mise en mémoire de ta sélection
Set Rg = Target
End Sub
'----------------------------------------
"Lulu la Nantaise" <Nospam@Nospam.com> a écrit dans le message de news:
eRdb5gwGJHA.1160@TK2MSFTNGP04.phx.gbl...
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
ceci devrait être suffisant :
'Déclaration de la variable dans le haut de ton module feuille
Dim Rg As Range
'Code à copier dans ledit module feuille où l'action se déroule
'----------------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Lorsque tu cliques dans la feuille
If Rg Is Nothing Then
If TypeName(Selection) = "Range" Then
Set Rg = Selection
Else
Set Rg = ActiveCell
End If
End If
MsgBox Rg.Address
'ton code
'Mise en mémoire de ta sélection
Set Rg = Target
End Sub
'----------------------------------------
"Lulu la Nantaise" a écrit dans le message de news:
Bonjour,
Avec Worksheet_SelectionChange(ByVal Target As Range), Target.adress me
donne l'adresse de la cellule qui vient d'être sélectionnée (celle d'en
dessous de la cellule modifiée après enter par ex).
Est-il possible d'avoir l'adresse de la cellule avant changement ?
Merci
Lulu
| dans quel sens... mon exemple était plus court
| et tient compte des feuilles!?
A ) D'abord, "plus court" n'a jamais été un critère obligatoire
pour évaluer une procédure
B ) La demanderesse faisait appel à un événement précis...
toi, tu as conclu que ce serait meilleur si tu utilisais autre chose !
ça c'est ta perception... mais faut quand même répondre au demandeur.
C ) Zaza : Utilisation d'une variable non déclarée
D ) je suppute que ta compréhension de la ligne de code est déficiente !
On Error GoTo 0
Un petit exemple :
si je veux effacer "l'erreur" à la suite de "set sh = ..."
je pourrais choisir : err = 0 ou err.clear
mais si j'utilise On error goto 0, compte combien de boucle
la procédure va effectuer ....
Placer On error goto 0 comme dernière ligne de code ne sert
absolument à rien !
'-----------------------------------
Sub test()
Dim sh As Worksheet
On Error Resume Next
For a = 1 To 2
Set sh = Worksheets("Feuil5" & a)
Err.Clear
'On Error GoTo 0
Next
End Sub
'-----------------------------------
E ) afficher un message où le contenu est vide n'est pas
particulièrement pertinent : MsgBox [zaza] si zaza n'existe pas.
F ) Tu aurais pu créer un nom et le rendre "non accessible" à
l'interface de calcul pour éviter qu'un usager le supprime
en utilisant la propriété "Visible" de l'objet "Name"
Tu as une autre question ?
;-)
| dans quel sens... mon exemple était plus court
| et tient compte des feuilles!?
A ) D'abord, "plus court" n'a jamais été un critère obligatoire
pour évaluer une procédure
B ) La demanderesse faisait appel à un événement précis...
toi, tu as conclu que ce serait meilleur si tu utilisais autre chose !
ça c'est ta perception... mais faut quand même répondre au demandeur.
C ) Zaza : Utilisation d'une variable non déclarée
D ) je suppute que ta compréhension de la ligne de code est déficiente !
On Error GoTo 0
Un petit exemple :
si je veux effacer "l'erreur" à la suite de "set sh = ..."
je pourrais choisir : err = 0 ou err.clear
mais si j'utilise On error goto 0, compte combien de boucle
la procédure va effectuer ....
Placer On error goto 0 comme dernière ligne de code ne sert
absolument à rien !
'-----------------------------------
Sub test()
Dim sh As Worksheet
On Error Resume Next
For a = 1 To 2
Set sh = Worksheets("Feuil5" & a)
Err.Clear
'On Error GoTo 0
Next
End Sub
'-----------------------------------
E ) afficher un message où le contenu est vide n'est pas
particulièrement pertinent : MsgBox [zaza] si zaza n'existe pas.
F ) Tu aurais pu créer un nom et le rendre "non accessible" à
l'interface de calcul pour éviter qu'un usager le supprime
en utilisant la propriété "Visible" de l'objet "Name"
Tu as une autre question ?
;-)
| dans quel sens... mon exemple était plus court
| et tient compte des feuilles!?
A ) D'abord, "plus court" n'a jamais été un critère obligatoire
pour évaluer une procédure
B ) La demanderesse faisait appel à un événement précis...
toi, tu as conclu que ce serait meilleur si tu utilisais autre chose !
ça c'est ta perception... mais faut quand même répondre au demandeur.
C ) Zaza : Utilisation d'une variable non déclarée
D ) je suppute que ta compréhension de la ligne de code est déficiente !
On Error GoTo 0
Un petit exemple :
si je veux effacer "l'erreur" à la suite de "set sh = ..."
je pourrais choisir : err = 0 ou err.clear
mais si j'utilise On error goto 0, compte combien de boucle
la procédure va effectuer ....
Placer On error goto 0 comme dernière ligne de code ne sert
absolument à rien !
'-----------------------------------
Sub test()
Dim sh As Worksheet
On Error Resume Next
For a = 1 To 2
Set sh = Worksheets("Feuil5" & a)
Err.Clear
'On Error GoTo 0
Next
End Sub
'-----------------------------------
E ) afficher un message où le contenu est vide n'est pas
particulièrement pertinent : MsgBox [zaza] si zaza n'existe pas.
F ) Tu aurais pu créer un nom et le rendre "non accessible" à
l'interface de calcul pour éviter qu'un usager le supprime
en utilisant la propriété "Visible" de l'objet "Name"
Tu as une autre question ?
;-)
> Lorsque l'on utilise l'expression "On Error Resume Next" ce
...../suite
| > B ) La demanderesse faisait appel à un événement
| c'est le même mais outre que j'explique qu'il ne s'applique pas qu'à
| une cellule puisqu'elle le connait, j'étends la possibilité à l'ensemble
| des feuilles.
***Je n'ai rien contre le fait d'étendre la possibilité... mais cela
n'était pas dans la requête de la demanderesse
ça va .... elle choisira.
| Arrête de supputer je n'ai pas utilisé de boucle et
| par principe lorsque j'ai mis un
| on error resume next
| avant je mets le on error goto 0 après....
Lorsque l'on utilise l'expression "On Error Resume Next" ce
n'est pas pour prendre une assurance contre toute éventualité
de plantage de la part de la procédure. Normalement, on doit
avoir identifié le pourqoui de la nécessité de son utilisation car
on devrait connaître déjà la ligne de code problématique
susceptible de générer une erreur si certaines condtions sont
réunies. Dans l'éventualité que ladite ligne de code provoque
une erreur, si on veux "effacer" cette erreur, on ajoute après
la ligne de code problématique : Err.Clear ou err = 0. Ainsi la
procédure continue...
L'expression "On error goto 0" non seulement efface l'erreur mais
elle inhibe pour tout le reste de la procédure le "On error resume next"
Que ce soit à l'intérieur d'une boucle ou 2 lignes de code distnctes
susceptible de provoquer une erreur, il faudrait alors répéter à chaque
occurrence l'expression "On error resume next" suivi à chaque fois de
On error resume next. Dans certaines circonstances, la chose peut
rendre de fier service !
Cependant, si on place comme dernière ligne de code d'une procédure
"on error goto 0" ... cette dernière est sans effet réel car elle efface
"quelque chose" qui s'efface de lui-même à la fin de la procédure.
Ceci étant dit, tout le monde est libre d'écrire une procédure de la
manière qu'il lui plaît... mais si quelqu'un revendique sa procédure
comme étant la plus courte, le moins qu'il puisse faire pour être
congruent avec sa déclaration est d'enlever le bois mort dans sa
propre procédure.
..../fin.
> Lorsque l'on utilise l'expression "On Error Resume Next" ce
...../suite
| > B ) La demanderesse faisait appel à un événement
| c'est le même mais outre que j'explique qu'il ne s'applique pas qu'à
| une cellule puisqu'elle le connait, j'étends la possibilité à l'ensemble
| des feuilles.
***Je n'ai rien contre le fait d'étendre la possibilité... mais cela
n'était pas dans la requête de la demanderesse
ça va .... elle choisira.
| Arrête de supputer je n'ai pas utilisé de boucle et
| par principe lorsque j'ai mis un
| on error resume next
| avant je mets le on error goto 0 après....
Lorsque l'on utilise l'expression "On Error Resume Next" ce
n'est pas pour prendre une assurance contre toute éventualité
de plantage de la part de la procédure. Normalement, on doit
avoir identifié le pourqoui de la nécessité de son utilisation car
on devrait connaître déjà la ligne de code problématique
susceptible de générer une erreur si certaines condtions sont
réunies. Dans l'éventualité que ladite ligne de code provoque
une erreur, si on veux "effacer" cette erreur, on ajoute après
la ligne de code problématique : Err.Clear ou err = 0. Ainsi la
procédure continue...
L'expression "On error goto 0" non seulement efface l'erreur mais
elle inhibe pour tout le reste de la procédure le "On error resume next"
Que ce soit à l'intérieur d'une boucle ou 2 lignes de code distnctes
susceptible de provoquer une erreur, il faudrait alors répéter à chaque
occurrence l'expression "On error resume next" suivi à chaque fois de
On error resume next. Dans certaines circonstances, la chose peut
rendre de fier service !
Cependant, si on place comme dernière ligne de code d'une procédure
"on error goto 0" ... cette dernière est sans effet réel car elle efface
"quelque chose" qui s'efface de lui-même à la fin de la procédure.
Ceci étant dit, tout le monde est libre d'écrire une procédure de la
manière qu'il lui plaît... mais si quelqu'un revendique sa procédure
comme étant la plus courte, le moins qu'il puisse faire pour être
congruent avec sa déclaration est d'enlever le bois mort dans sa
propre procédure.
..../fin.
> Lorsque l'on utilise l'expression "On Error Resume Next" ce
...../suite
| > B ) La demanderesse faisait appel à un événement
| c'est le même mais outre que j'explique qu'il ne s'applique pas qu'à
| une cellule puisqu'elle le connait, j'étends la possibilité à l'ensemble
| des feuilles.
***Je n'ai rien contre le fait d'étendre la possibilité... mais cela
n'était pas dans la requête de la demanderesse
ça va .... elle choisira.
| Arrête de supputer je n'ai pas utilisé de boucle et
| par principe lorsque j'ai mis un
| on error resume next
| avant je mets le on error goto 0 après....
Lorsque l'on utilise l'expression "On Error Resume Next" ce
n'est pas pour prendre une assurance contre toute éventualité
de plantage de la part de la procédure. Normalement, on doit
avoir identifié le pourqoui de la nécessité de son utilisation car
on devrait connaître déjà la ligne de code problématique
susceptible de générer une erreur si certaines condtions sont
réunies. Dans l'éventualité que ladite ligne de code provoque
une erreur, si on veux "effacer" cette erreur, on ajoute après
la ligne de code problématique : Err.Clear ou err = 0. Ainsi la
procédure continue...
L'expression "On error goto 0" non seulement efface l'erreur mais
elle inhibe pour tout le reste de la procédure le "On error resume next"
Que ce soit à l'intérieur d'une boucle ou 2 lignes de code distnctes
susceptible de provoquer une erreur, il faudrait alors répéter à chaque
occurrence l'expression "On error resume next" suivi à chaque fois de
On error resume next. Dans certaines circonstances, la chose peut
rendre de fier service !
Cependant, si on place comme dernière ligne de code d'une procédure
"on error goto 0" ... cette dernière est sans effet réel car elle efface
"quelque chose" qui s'efface de lui-même à la fin de la procédure.
Ceci étant dit, tout le monde est libre d'écrire une procédure de la
manière qu'il lui plaît... mais si quelqu'un revendique sa procédure
comme étant la plus courte, le moins qu'il puisse faire pour être
congruent avec sa déclaration est d'enlever le bois mort dans sa
propre procédure.
..../fin.