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

comment créer une macro pour faire un tri automatique

11 réponses
Avatar
zezette27
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à chaque
ajout de ligne
--
zezette27

10 réponses

1 2
Avatar
Daniel
Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à chaque
ajout de ligne
--
zezette27


Avatar
zezette27
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en fonction des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à chaque
ajout de ligne
--
zezette27







Avatar
Daniel
Fais un clic droit sur l'onglet de ta feuille et clique sur "visualiser le
code".
Copie le code suivant; j'ai supposé que tes données étaient en colonnes de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval etc.) en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en fonction des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à
chaque
ajout de ligne
--
zezette27









Avatar
zezette27
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui lui
reste fixe et en dernière colonne le bonus attribué par le classement donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur "visualiser le
code".
Copie le code suivant; j'ai supposé que tes données étaient en colonnes de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval etc.) en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en fonction des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à
chaque
ajout de ligne
--
zezette27














Avatar
Daniel
Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui lui
reste fixe et en dernière colonne le bonus attribué par le classement donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur "visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à
chaque
ajout de ligne
--
zezette27
















Avatar
zezette27
comment fait on pour lancer la macro que tu viens de m'envoyer ?
--
zezette27



Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui lui
reste fixe et en dernière colonne le bonus attribué par le classement donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur "visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il est
valable pour une saisie dans les colonnes A et B à partir de A1. A toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur à
chaque
ajout de ligne
--
zezette27





















Avatar
Daniel
Tu saisis une ligne, comme celles qui sont déjà saisies, et quand tu as
saisi les cinq cellules, le tri se fait automatiquement. Tu n'as rien de
particulier à faire.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour lancer la macro que tu viens de m'envoyer ?
--
zezette27



Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message
de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui
lui
reste fixe et en dernière colonne le bonus attribué par le classement
donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur
"visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en
colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval
etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en
fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il
est
valable pour une saisie dans les colonnes A et B à partir de A1. A
toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit
Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur
à
chaque
ajout de ligne
--
zezette27























Avatar
zezette27
ok et merci pour tout,super l'aide!!!
si besoin je te recontacte.
merci encore
--
zezette27



Tu saisis une ligne, comme celles qui sont déjà saisies, et quand tu as
saisi les cinq cellules, le tri se fait automatiquement. Tu n'as rien de
particulier à faire.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour lancer la macro que tu viens de m'envoyer ?
--
zezette27



Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message
de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui
lui
reste fixe et en dernière colonne le bonus attribué par le classement
donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur
"visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en
colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval
etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en
fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il
est
valable pour une saisie dans les colonnes A et B à partir de A1. A
toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit
Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur
à
chaque
ajout de ligne
--
zezette27




























Avatar
zezette27
je suis obligé de double cliquer sur une cellule ,déjà remplie ,des colonnes
nom ou cheval ou club ou points pour que le classement se fasse !!!
--
zezette27



ok et merci pour tout,super l'aide!!!
si besoin je te recontacte.
merci encore
--
zezette27



Tu saisis une ligne, comme celles qui sont déjà saisies, et quand tu as
saisi les cinq cellules, le tri se fait automatiquement. Tu n'as rien de
particulier à faire.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour lancer la macro que tu viens de m'envoyer ?
--
zezette27



Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message
de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui
lui
reste fixe et en dernière colonne le bonus attribué par le classement
donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur
"visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en
colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval
etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en
fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il
est
valable pour une saisie dans les colonnes A et B à partir de A1. A
toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit
Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur
à
chaque
ajout de ligne
--
zezette27






























Avatar
michdenis
Bonjour zezette27,

Dans le code module de feuille, copie ce qui suit :

Pour qu'il y ait tri, les 6 colonnes de la même ligne doivent être renseignées

'-----------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range, DerLig As Long
DerLig = Me.Range("A:F").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
On Error GoTo 0
Set Rg = Range("A1:F" & DerLig)

If Not Intersect(Target, Rg) Is Nothing Then
If Application.WorksheetFunction.CountA(Rg.Rows(Target.Row)) = 6 Then
Range("A1:F" & DerLig).Sort Key1:=Range("E2"), _
Key2:=Range("F2"), Key3:=Range("B2"), Header:=xlYes
End If
End If

End Sub
'-----------------------------


Salutations!



"zezette27" a écrit dans le message de news:

je suis obligé de double cliquer sur une cellule ,déjà remplie ,des colonnes
nom ou cheval ou club ou points pour que le classement se fasse !!!
--
zezette27



ok et merci pour tout,super l'aide!!!
si besoin je te recontacte.
merci encore
--
zezette27



Tu saisis une ligne, comme celles qui sont déjà saisies, et quand tu as
saisi les cinq cellules, le tri se fait automatiquement. Tu n'as rien de
particulier à faire.
Daniel
"zezette27" a écrit dans le message de
news:
comment fait on pour lancer la macro que tu viens de m'envoyer ?
--
zezette27



Regarde le classeur à l'adresse suivante :
http://cjoint.com/?lrqmCh8jO1
Daniel
"zezette27" a écrit dans le message
de
news:
super mais j'ai ma ligne 1 qui vient se mettre dans le tri !
je veux aussi mettre en première colonne le numéro de classement, qui
lui
reste fixe et en dernière colonne le bonus attribué par le classement
donc
qui reste fixe aussi.
ce qui donne:
classement,nom,cheval,club,points,temps,bonus
Merci beaucoup pour cette aide.
--
zezette27



Fais un clic droit sur l'onglet de ta feuille et clique sur
"visualiser
le
code".
Copie le code suivant; j'ai supposé que tes données étaient en
colonnes
de A
à E avec une ligne d'entêtes tels que tu les a donnés (nom, cheval
etc.)
en
ligne 1.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Complet As Boolean
If Target.Column > 5 Then Exit Sub
Complet = False
For i = 0 To 4
If Target.Offset(0, i).Value = "" Then Complet = True
Next i
If Complet = False Then Exit Sub
Columns("A:E").Sort Key1:=Range("D2"), Key2:=Range("E2"),
Key3:=Range("A2"), _
Header:=xlYes
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
mon tableau est du style:
nom,cheval,club,point,temps et le jeux le classer d'abord en
fonction
des
points croissants puis du temps croissant puis du nom
merci pour l'aide je débute
--
zezette27



Bonjour.
Mets le code suivant dans la feuille où tu saisis tes données; il
est
valable pour une saisie dans les colonnes A et B à partir de A1. A
toi
de
l'adapter. Adapte également les paramètres du tri :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 2 Then Exit Sub
If Target.Column = 1 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 2 And Target.Offset(0, -1) = "" Then Exit
Sub
Range("A:B").Sort Range("A1")
End Sub

Cordialement.
Daniel
"zezette27" a écrit dans le
message
de
news:
comment fait on pour créer une macro.
je voudrai créer une macro pour trier automatiquement un classeur
à
chaque
ajout de ligne
--
zezette27






























1 2