Tri automatique

Je demande de l'aide, en tant qu'autodidacte débutant, pour finir ce classement par date une fois la ligne complétée.

Je vous mets en copie le code VBA que j'ai fait et le tableau en question. Où se trouve l'erreur ?

Merci

Sub tri()

Application.ScreenUpdating = False

With Sheets("Janvier").Sort

.SortFields.Clear

.SortFields.Add Key:=Range("A5"), Order:=xlAscending

.SetRange Range("A5:E150")

.Apply

End With

Application.ScreenUpdating = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A5:E150")) Is Nothing Then

iRow = Target.Row

'recherche si toutes les cellules de la ligne sont complétées

For x = 1 To 5

If Cells(iRow, x) = "" Then Exit Sub

Next

Call tri

End If

End Sub

Bonsoir Hendji,

je t'ai donné la réponse hier, avec ton premier post sur le sujet!

Sub tri()

Application.ScreenUpdating = False
'
Sheets("Janvier").Range("A5:E150").Sort Key1:=Range("A5"), Order1:=xlAscending
'
Application.ScreenUpdating = True

End Sub

Si tu veux un ordre de tri différent, tu changes 'xlAscending' par 'xlDescending'.

A+

Je me suis mal exprimé.

Ce que je recherche, c'est la deuxième partie, c'est-à-dire, que le tri ne se fasse qu'une fois que j'aurai rempli toute la ligne, c'est la mon gros problème !

C'était AUSSI dans ma première réponse! , code que tu viens d'afficher dans ce post ci!

Vaut bien la peine!

De plus, nous t'avions demandé de réorganiser ta BDD!

A+

Ok à part que ça ne fonctionne pas . Qui plus est, j'ai viré la partie "Prélèvement" que je vais gérer autrement. C'est pour ça que je demandais une révision complète de la VBA.

Merci encore de me supporter un chouia.

Salut Hendji,

le problème n''est pas de te supporter mais de comprendre ce que tu veux et à partir de quel fichier...

Le code que tu as eu hier fonctionne très bien pour ce que tu demandes aujourd'hui!

Pour le tri, j'avoue que j'avais (un peu) oublié de mentionner le dernier argument.

Donc, présente-nous un fichier remodelé qui soit une base solide de travail avec les explications claires dont nous avons besoin!

Sub tri()
'
Application.ScreenUpdating = False
'
Sheets("Janvier").Range("A5:E150").Sort Key1:=Range("A5"), Order1:=xlAscending, Orientation:=xlTopToBottom
'
Application.ScreenUpdating = True
'
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A5:E150")) Is Nothing Then
    iRow = Target.Row
    'recherche si toutes les cellules de la ligne sont complétées
   For x = 1 To 5
        If Cells(iRow, x) = "" Then Exit Sub
    Next
    'copie du prélèvement
   'structure de la base de données à revoir complètement!
   '??????????????
   'worksheets("Prélèvement").cells(??? , ???)=cells(iRow,4)
   '??????????????
   Call tri
End If

End Sub

Complète une ligne! Tu verras bien si le tri démarre avant qu'elle ne soit complète!

A+

9compta2017.xlsm (20.08 Ko)

Super, ça marche. Mais, suis-je obligé d'appeler la macro manuellement alors que le tri doit se faire automatiquement une fois la touche enter validée ? J'ai loupé une virgule quelque part ? (ne riez pas svp)

C'est encore moi pour une petite modif.

Serait possible que le tri ne se fasse qu'une fois que les lignes date, Crédit ou Débit soit remplies ?

4compta-test2.zip (9.09 Ko)

Bonjour,

Sur mon tableau, j'ai un tri automatique.

Je souhaiterai envoyer automatique le montant du salaire en Feuille "Janvier" en C4 (sans passer par la formule = ) sur la Feuille "Récap" Janvier en B4 et ainsi de suite pour tous les autres mois de l'année.

J'ai essayé la formule =che_spe(Salaire;2017;"Janvier";B3) qui ne donne rien.

J'ai tenté par RECHERCHE et là aussi fiasco.

Qui pourrait m'aider la dessus ?

D'avance, merci

7compta-test.zip (20.21 Ko)
Rechercher des sujets similaires à "tri automatique"