Bonjour =E0 tous
Je dois transmettre un classeur et de ce fait, j'ai deux=20
probl=E8mes =E0 r=E9soudre.
1)Comment =AB provoquer =BB automatiquement le fonctionnement=20
de la macro apr=E8s la saisie au clavier de la derni=E8re=20
valeur, sans savoir si la personne tierce travaille avec=20
la valeur =AB sens apr=E8s validation mise sur "droite" =BB.
2)Comment faire pour placer le curseur sur la premi=E8re=20
cellule vide en colonne 1, soit derni=E8re cellule +1.
Voici le code qu'actuellement j'utilise.
Private Sub Worksheet_Change(ByVal zz As Range)
If ActiveCell.Column =3D 4 Then
Range("A1:C1").Select
Range(Selection, Selection.End(xlDown)) _
.Sort Key1:=3DRange("A1"), Order1:=3DxlAscending,=20
Header:=3DxlGuess, _
OrderCustom:=3D1, MatchCase:=3DFalse,=20
Orientation:=3DxlTopToBottom
Range("A1").End(xlDown).Select
End If
End Sub
Merci d'avance pour vos solutions.
Christian
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
Frédéric Sigonneau
Bonsoir,
1)Comment « provoquer » automatiquement le fonctionnement de la macro après la saisie au clavier de la dernière valeur, sans savoir si la personne tierce travaille avec la valeur « sens après validation mise sur "droite" ».
Pas certain de comprendre la demande... L'événement Change des feuilles est déclenché quand une saisie est validée, que ce soit en appuyant sur Entrée ou, par ex, en cliquant n'importe où dans la feuille. La cellule sélectionnée après la saisie (à droite, en dessous ou au fin fond de la feuille) n'intervient en aucune façon dans le déclenchement de l'événement Change (et du code qui lui est associé). Cependant, s'il t'est utile de récupérer le sens du déplacement de la sélection après la validation par Entrée, tu peux l'obtenir avec ce genre de code :
Sub Déplacement() Dim S$ If Application.MoveAfterReturn Then Select Case Application.MoveAfterReturnDirection Case -4162: S = "vers le bas" Case -4161: S = "vers la droite" Case -4159: S = "vers la gauche" Case -4121: S = "vers le bas" End Select Else: S = "pas de déplacement" End If MsgBox S End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
2)Comment faire pour placer le curseur sur la première cellule vide en colonne 1, soit dernière cellule +1. Voici le code qu'actuellement j'utilise. Private Sub Worksheet_Change(ByVal zz As Range) If ActiveCell.Column = 4 Then Range("A1:C1").Select Range(Selection, Selection.End(xlDown)) _ .Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom Range("A1").End(xlDown).Select End If End Sub Merci d'avance pour vos solutions. Christian
Bonsoir,
1)Comment « provoquer » automatiquement le fonctionnement
de la macro après la saisie au clavier de la dernière
valeur, sans savoir si la personne tierce travaille avec
la valeur « sens après validation mise sur "droite" ».
Pas certain de comprendre la demande... L'événement Change des feuilles est
déclenché quand une saisie est validée, que ce soit en appuyant sur Entrée ou,
par ex, en cliquant n'importe où dans la feuille. La cellule sélectionnée après
la saisie (à droite, en dessous ou au fin fond de la feuille) n'intervient en
aucune façon dans le déclenchement de l'événement Change (et du code qui lui est
associé).
Cependant, s'il t'est utile de récupérer le sens du déplacement de la sélection
après la validation par Entrée, tu peux l'obtenir avec ce genre de code :
Sub Déplacement()
Dim S$
If Application.MoveAfterReturn Then
Select Case Application.MoveAfterReturnDirection
Case -4162: S = "vers le bas"
Case -4161: S = "vers la droite"
Case -4159: S = "vers la gauche"
Case -4121: S = "vers le bas"
End Select
Else: S = "pas de déplacement"
End If
MsgBox S
End Sub
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
2)Comment faire pour placer le curseur sur la première
cellule vide en colonne 1, soit dernière cellule +1.
Voici le code qu'actuellement j'utilise.
Private Sub Worksheet_Change(ByVal zz As Range)
If ActiveCell.Column = 4 Then
Range("A1:C1").Select
Range(Selection, Selection.End(xlDown)) _
.Sort Key1:=Range("A1"), Order1:=xlAscending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom
Range("A1").End(xlDown).Select
End If
End Sub
Merci d'avance pour vos solutions.
Christian
1)Comment « provoquer » automatiquement le fonctionnement de la macro après la saisie au clavier de la dernière valeur, sans savoir si la personne tierce travaille avec la valeur « sens après validation mise sur "droite" ».
Pas certain de comprendre la demande... L'événement Change des feuilles est déclenché quand une saisie est validée, que ce soit en appuyant sur Entrée ou, par ex, en cliquant n'importe où dans la feuille. La cellule sélectionnée après la saisie (à droite, en dessous ou au fin fond de la feuille) n'intervient en aucune façon dans le déclenchement de l'événement Change (et du code qui lui est associé). Cependant, s'il t'est utile de récupérer le sens du déplacement de la sélection après la validation par Entrée, tu peux l'obtenir avec ce genre de code :
Sub Déplacement() Dim S$ If Application.MoveAfterReturn Then Select Case Application.MoveAfterReturnDirection Case -4162: S = "vers le bas" Case -4161: S = "vers la droite" Case -4159: S = "vers la gauche" Case -4121: S = "vers le bas" End Select Else: S = "pas de déplacement" End If MsgBox S End Sub
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
2)Comment faire pour placer le curseur sur la première cellule vide en colonne 1, soit dernière cellule +1. Voici le code qu'actuellement j'utilise. Private Sub Worksheet_Change(ByVal zz As Range) If ActiveCell.Column = 4 Then Range("A1:C1").Select Range(Selection, Selection.End(xlDown)) _ .Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom Range("A1").End(xlDown).Select End If End Sub Merci d'avance pour vos solutions. Christian