Je me casse la tête sans résultat pour sélectionner une cellule au moment ou
on tape un code alpha dans une autre.
ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y
introduire des heures variables.
J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je
n'y arrive pas.
Je ne connais pas VBA suffisamment.
Quelqu'un peut-il m'aider?
merci d'avance.
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
Tatanka
Salut Mathieu,
Quelque chose du genre :
Fais un clic droit sur l'onglet de ta feuille, un clic gauche sur « Visualiser le code » et colle cette macro :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$9" And UCase(Target.Value) = "RT" _ Then Range("$B$32").Select End Sub
dans la feuille du VBE qui devrait apparaître.
Retourne à ta feuille. Quand tu entreras RT, rT, Rt ou rt en B9, B32 sera sélectionnée. Si tu veux que B32 soit sélectionnée seulement quand tu entres RT, remplace UCase(Target.Value) par Target.Value.
Serge
"Mathieu René" a écrit dans le message de news: 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
Salut Mathieu,
Quelque chose du genre :
Fais un clic droit sur l'onglet de ta feuille, un clic gauche sur
« Visualiser le code » et colle cette macro :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$9" And UCase(Target.Value) = "RT" _
Then Range("$B$32").Select
End Sub
dans la feuille du VBE qui devrait apparaître.
Retourne à ta feuille. Quand tu entreras RT, rT, Rt ou rt en B9,
B32 sera sélectionnée. Si tu veux que B32 soit sélectionnée
seulement quand tu entres RT, remplace UCase(Target.Value)
par Target.Value.
Serge
"Mathieu René" <spmathieu.rene@skynet.be> a écrit dans le message de news: 4cf6a46a$0$14261$ba620e4c@news.skynet.be...
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre.
ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables.
J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas.
Je ne connais pas VBA suffisamment.
Quelqu'un peut-il m'aider?
merci d'avance.
Fais un clic droit sur l'onglet de ta feuille, un clic gauche sur « Visualiser le code » et colle cette macro :
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$9" And UCase(Target.Value) = "RT" _ Then Range("$B$32").Select End Sub
dans la feuille du VBE qui devrait apparaître.
Retourne à ta feuille. Quand tu entreras RT, rT, Rt ou rt en B9, B32 sera sélectionnée. Si tu veux que B32 soit sélectionnée seulement quand tu entres RT, remplace UCase(Target.Value) par Target.Value.
Serge
"Mathieu René" a écrit dans le message de news: 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
michdenis
Bonjour,
Copie ce qui suit dans le module feuille où l'action doit se dérouler.
'--------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("B9").Address Then If UCase(Range("B9")) = "RT" Then Application.EnableEvents = False Range("B32").Select Application.EnableEvents = True End If End If End Sub '---------------------------------
MichD -------------------------------------------- "Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
Bonjour,
Copie ce qui suit dans le module feuille où l'action doit se dérouler.
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("B9").Address Then
If UCase(Range("B9")) = "RT" Then
Application.EnableEvents = False
Range("B32").Select
Application.EnableEvents = True
End If
End If
End Sub
'---------------------------------
MichD
--------------------------------------------
"Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$ba620e4c@news.skynet.be...
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou
on tape un code alpha dans une autre.
ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y
introduire des heures variables.
J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je
n'y arrive pas.
Je ne connais pas VBA suffisamment.
Quelqu'un peut-il m'aider?
merci d'avance.
Copie ce qui suit dans le module feuille où l'action doit se dérouler.
'--------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = Range("B9").Address Then If UCase(Range("B9")) = "RT" Then Application.EnableEvents = False Range("B32").Select Application.EnableEvents = True End If End If End Sub '---------------------------------
MichD -------------------------------------------- "Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
Mathieu René
Bonjour et merci pour votre réponse rapide et qui fonctionne parfaitement.
Je vous demande de m'excuser, j'aurai dû vous dire qu'en fait, la B9 faisait partie d'une plages de B9 à AS9 et B32 de B32 à AS 32. Il y a d'autres codes qui peuvent entrer dans ces cellules RF va en B32 RT va en B33 JF va en B34 Ma va en B35 les autres codes (+/- 60) sont déjà programmés, ils font appels à des traitements horaires qui fonctionnent par recherche en table, Apparemment , Target ne peut s'adresser qu'a une cellule. J'ai essayé en déclarant les deux plages par "set plage" mais cela ne va pas. pouvez-vous m'aider? merci
"Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
Bonjour et merci pour votre réponse rapide et qui fonctionne parfaitement.
Je vous demande de m'excuser, j'aurai dû vous dire qu'en fait,
la B9 faisait partie d'une plages de B9 à AS9 et B32 de B32 à AS 32.
Il y a d'autres codes qui peuvent entrer dans ces cellules
RF va en B32
RT va en B33
JF va en B34
Ma va en B35
les autres codes (+/- 60) sont déjà programmés, ils font appels à des
traitements horaires qui fonctionnent par recherche en table,
Apparemment , Target ne peut s'adresser qu'a une cellule.
J'ai essayé en déclarant les deux plages par "set plage" mais cela ne va
pas.
pouvez-vous m'aider?
merci
"Mathieu René" <spmathieu.rene@skynet.be> a écrit dans le message de groupe
de discussion : 4cf6a46a$0$14261$ba620e4c@news.skynet.be...
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment
ou on tape un code alpha dans une autre.
ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y
introduire des heures variables.
J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je
n'y arrive pas.
Je ne connais pas VBA suffisamment.
Quelqu'un peut-il m'aider?
merci d'avance.
Bonjour et merci pour votre réponse rapide et qui fonctionne parfaitement.
Je vous demande de m'excuser, j'aurai dû vous dire qu'en fait, la B9 faisait partie d'une plages de B9 à AS9 et B32 de B32 à AS 32. Il y a d'autres codes qui peuvent entrer dans ces cellules RF va en B32 RT va en B33 JF va en B34 Ma va en B35 les autres codes (+/- 60) sont déjà programmés, ils font appels à des traitements horaires qui fonctionnent par recherche en table, Apparemment , Target ne peut s'adresser qu'a une cellule. J'ai essayé en déclarant les deux plages par "set plage" mais cela ne va pas. pouvez-vous m'aider? merci
"Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
LSteph
Bonjour,
Tout irait bien avec le code ci apres (sous mon post) s'il n'y avait que cela: >RF va en B32;RT va en B33;JF va en B34;Ma va en B35 Si on a déjà entré RF ou Ma il faut que le code aille aussi effacer les valeurs dépendant des cellules hors celle ou on veut entrer la valeur RT de plus si tu entre rt ou rf ou autre dans plusieurs cellules à la fois ou tu fais un copier de plusieurs rt rf ma jf ce code demandera une par une les valeurs à y entrer Jusqu'ici cela irait presque. Reste à savoir ce qu'on doit faire si un code différent est tapé. Question1
Alors par contre ta demande ne va plus du tout être possible avec cette hypothese de traitement s'il faut tenir compte de cela:
les autres codes (+/- 60) sont d j programm s, ils font appels des...
On peut pas faire agir sur évennement et faire appel à ce qu'on ne sait pas à la fois dans la même plage. S'il y a déjà d'autres codes et formules dans les deux plages concernées, on pourrait faire l'inverse si c'est juste le reste à completer à savoir si tu tapes en 33 mettre RT en 9 si tu tapes en 34 JF en 9 ... (à suivre..) Question2
Cordialement.
-- LSteph
Private Sub Worksheet_Change(ByVal Target As Range) Dim isect As Range, c As Range Set isect = Intersect(Target, [b9:as9]) If isect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In isect.Cells Select Case UCase(c) Case "RF" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(23, 0).Value = InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(23, 0).Address) Case "RT" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(24, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(24, 0).Address) Case "JF" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(25, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(25, 0).Address) Case "MA" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(26, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(26, 0).Address) Case Else MsgBox "Code non traité en " & c.Address End Select Next Application.EnableEvents = True End Sub
Bonjour,
Tout irait bien avec le code ci apres (sous mon post) s'il n'y avait
que cela: >RF va en B32;RT va en B33;JF va en B34;Ma va en B35
Si on a déjà entré RF ou Ma il faut que le code aille aussi effacer
les valeurs dépendant des cellules hors celle ou on veut entrer la
valeur RT
de plus si tu entre rt ou rf ou autre dans plusieurs cellules à la
fois ou tu fais un copier de plusieurs rt rf ma jf ce code demandera
une par une les valeurs à y entrer
Jusqu'ici cela irait presque. Reste à savoir ce qu'on doit faire si un
code différent est tapé. Question1
Alors par contre ta demande ne va plus du tout être possible avec
cette hypothese de traitement s'il faut tenir compte de cela:
les autres codes (+/- 60) sont d j programm s, ils font appels des...
On peut pas faire agir sur évennement et faire appel à ce qu'on ne
sait pas à la fois dans la même plage.
S'il y a déjà d'autres codes et formules dans les deux plages
concernées, on pourrait faire l'inverse si c'est juste le reste à
completer
à savoir si tu tapes en 33 mettre RT en 9 si tu tapes en 34 JF en
9 ... (à suivre..) Question2
Cordialement.
--
LSteph
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, c As Range
Set isect = Intersect(Target, [b9:as9])
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Select Case UCase(c)
Case "RF"
Range(c.Offset(23, 0), c.Offset(26, 0)).Value = ""
c.Offset(23, 0).Value = InputBox("Valeur pour " & c & " en " & _
c.Address & " en " & c.Offset(23, 0).Address)
Case "RT"
Range(c.Offset(23, 0), c.Offset(26, 0)).Value = ""
c.Offset(24, 0) = _
InputBox("Valeur pour " & c & " en " & _
c.Address & " en " & c.Offset(24, 0).Address)
Case "JF"
Range(c.Offset(23, 0), c.Offset(26, 0)).Value = ""
c.Offset(25, 0) = _
InputBox("Valeur pour " & c & " en " & _
c.Address & " en " & c.Offset(25, 0).Address)
Case "MA"
Range(c.Offset(23, 0), c.Offset(26, 0)).Value = ""
c.Offset(26, 0) = _
InputBox("Valeur pour " & c & " en " & _
c.Address & " en " & c.Offset(26, 0).Address)
Case Else
MsgBox "Code non traité en " & c.Address
End Select
Next
Application.EnableEvents = True
End Sub
Tout irait bien avec le code ci apres (sous mon post) s'il n'y avait que cela: >RF va en B32;RT va en B33;JF va en B34;Ma va en B35 Si on a déjà entré RF ou Ma il faut que le code aille aussi effacer les valeurs dépendant des cellules hors celle ou on veut entrer la valeur RT de plus si tu entre rt ou rf ou autre dans plusieurs cellules à la fois ou tu fais un copier de plusieurs rt rf ma jf ce code demandera une par une les valeurs à y entrer Jusqu'ici cela irait presque. Reste à savoir ce qu'on doit faire si un code différent est tapé. Question1
Alors par contre ta demande ne va plus du tout être possible avec cette hypothese de traitement s'il faut tenir compte de cela:
les autres codes (+/- 60) sont d j programm s, ils font appels des...
On peut pas faire agir sur évennement et faire appel à ce qu'on ne sait pas à la fois dans la même plage. S'il y a déjà d'autres codes et formules dans les deux plages concernées, on pourrait faire l'inverse si c'est juste le reste à completer à savoir si tu tapes en 33 mettre RT en 9 si tu tapes en 34 JF en 9 ... (à suivre..) Question2
Cordialement.
-- LSteph
Private Sub Worksheet_Change(ByVal Target As Range) Dim isect As Range, c As Range Set isect = Intersect(Target, [b9:as9]) If isect Is Nothing Then Exit Sub Application.EnableEvents = False For Each c In isect.Cells Select Case UCase(c) Case "RF" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(23, 0).Value = InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(23, 0).Address) Case "RT" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(24, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(24, 0).Address) Case "JF" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(25, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(25, 0).Address) Case "MA" Range(c.Offset(23, 0), c.Offset(26, 0)).Value = "" c.Offset(26, 0) = _ InputBox("Valeur pour " & c & " en " & _ c.Address & " en " & c.Offset(26, 0).Address) Case Else MsgBox "Code non traité en " & c.Address End Select Next Application.EnableEvents = True End Sub
Mathieu René
Bonjour à tous,
Un grand merci à LSteph La macro fonctionne parfaitement.
Pour la question, il n'y a qu'un code par case, de B9 à AS9. ce code attribue un horaire de travail dans un home pour personnes âgées. Le personnel est polyvalent et de ce fait a des horaires très, très variables d'ou les +/- 60 codes. Ces codes sont traités séparément par appel à un tableau avec les différents horaires. J'ai simplement supprimé le MSGBOX dans le cas ou on tape un code différent de ceux attribués. Encore merci René
"Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.
Bonjour à tous,
Un grand merci à LSteph
La macro fonctionne parfaitement.
Pour la question, il n'y a qu'un code par case, de B9 à AS9.
ce code attribue un horaire de travail dans un home pour personnes âgées.
Le personnel est polyvalent et de ce fait a des horaires très, très
variables d'ou les +/- 60 codes.
Ces codes sont traités séparément par appel à un tableau avec les différents
horaires.
J'ai simplement supprimé le MSGBOX dans le cas ou on tape un code différent
de ceux attribués.
Encore merci
René
"Mathieu René" <spmathieu.rene@skynet.be> a écrit dans le message de groupe
de discussion : 4cf6a46a$0$14261$ba620e4c@news.skynet.be...
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment
ou on tape un code alpha dans une autre.
ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y
introduire des heures variables.
J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je
n'y arrive pas.
Je ne connais pas VBA suffisamment.
Quelqu'un peut-il m'aider?
merci d'avance.
Un grand merci à LSteph La macro fonctionne parfaitement.
Pour la question, il n'y a qu'un code par case, de B9 à AS9. ce code attribue un horaire de travail dans un home pour personnes âgées. Le personnel est polyvalent et de ce fait a des horaires très, très variables d'ou les +/- 60 codes. Ces codes sont traités séparément par appel à un tableau avec les différents horaires. J'ai simplement supprimé le MSGBOX dans le cas ou on tape un code différent de ceux attribués. Encore merci René
"Mathieu René" a écrit dans le message de groupe de discussion : 4cf6a46a$0$14261$
Bonjour à tous,
Je me casse la tête sans résultat pour sélectionner une cellule au moment ou on tape un code alpha dans une autre. ex; se positionner sur B32 quand on entre "RT" dans B9, en fait pour y introduire des heures variables. J'ai essayé avec sub worksheet_change(byval target as excel.range) mais je n'y arrive pas. Je ne connais pas VBA suffisamment. Quelqu'un peut-il m'aider? merci d'avance.