Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modification code VBA

1 réponse
Avatar
Christian
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

1 réponse

Avatar
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