Prob dans detection de cellule

bonjour,

j'aimerais détecter la cellule qui est en cours de modification voici mon code :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim r 'cellule active
    r = Replace(ActiveCell.Address, "$", "")
End Sub

le problème c'est que si je met un lettre dans la case C225 par exemple et que je fais entrer il me détecte la case C226 alors que je veux la case C225

je suis bloquer la dessus si quelqu'un a la soluc merci pour votre futur aide

Bonjour

Comme ceci :

Dim ok As Boolean
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If ok = True Then Exit Sub
ok = True
Target = Replace(Target, "$", "")
ok = False
End Sub

Attention que ce code doit être placé dans Thisworkbook et s'applique donc à toutes les feuilles et toutes les cellules

Si ok et que votre demande est solutionnée, veillez à cliquer sur le V vert à coté du bouton EDITER pour cloturer le fil

Cordialement

merci,

en fait target est un objet donc ton code renvoi un nothing car je ne peu pas lui donner une valeur, par contre pour avoir ma ligne exacte j'utilise ceci :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Dim r
r = Target.Row

End Sub

et pour gérer ma colonne j'ai Target.Column

si je fait entrer pour valider mon enregistrement lui il passe a +1 en ligne mais le target.row est bien sur la case que j'ai modifié..

je pense que je vais pouvoir me débrouiller en tout cas merci pour la piste

Bonjour,

en fait target est un objet donc ton code renvoi un nothing

NON en général (sauf quelques cas particuliers où il peut y avoir ambiguïté, quand tu écris Target, c'est équivalent à Target.Value, Value est la propriété par défaut d'un objet Range.

D'autre part, ton remplacement des $ pour avoir une adresse en réf; relatives est inutile :

Target.Address ou Target.Address (True, True) renvoie l'adresse en réf. absolues (True est la valeur par défaut...)

Mais Target.Address(False, False) la renvoie en références relatives.

Cordialement.

ok,

en fait je ne cherche pas a avoir la valeur de la case que j’écris mais sont numéro de coordonnée exemple: C234

en fait "ActiveCell.Address" me le donne bien mais quand j’écris dans une case il ne détecte rien, il détecte quand je change de case ou que je fais entrer au clavier, donc si je fais entrer ma cellule passe de C234 a C235...

la ou est mon problème et du coup avec le target row j'ai bien le numéro de ligne qui a été modifier ...

C'est la même chose avec Target.Address !

ha merci pour l'info, je vais tester ca ...


merci en fait c'etait bien ca qui me fallait

du coup mon code passe de :

r = Replace(ActiveCell.Address, "$", "")

a

r = Replace(Target.Address, "$", "")

merci les amis

Je répète donc !

r= Target.Address(False, False)

donne le même résultat !

Pas besoin d'utiliser une fonction !

lol effectivement je viens de revoir ton post de 15:18, dsl j’étais sur mon tel a ce moment et je n'ai pas vu la deuxième partie de ta réponse, encore merci

Rechercher des sujets similaires à "prob detection"