Trier avec une macro

eric -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
Je souhaiterai trier plusieurs cellules d'une même ligne, avec un tri automatique dès que l'on a validé la dernière cellule, et pour que le résultat soit placé à partir d'une autre celulle.
Je ne suis pas un pro de la programmation.

A voir également:

3 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
tu n'est peut-être pas "pro de la programmation" mais tu n'est pas non plus maître en explication.
Donne plus de détails.
Note: un peu de politesse serait aussi bienvenue.
S'il vous plaît
Merci
Au revoir
etc.
Sont un plus si ont souhaite avoir de l'aide. !
A+
1
eric.zouaves Messages postés 3 Statut Membre
 
Désolé de t'avoir froisé
voilà ce que je souhaite faire :
A) j'ai 1.15 dans la cellule A1, 1.13 dans la cellule b1, 2.10 dans la cellule c1, 1.8 dans la cellule d1
B) je souhaite effectuer un tri par ordre croissant de ces quatres valeurs pour que le résultat se positionne dans la cellule f1, après avoir rempli la dernière cellule.
Peut-on répéter ce tri sur plusieurs lignes automatiquement

D'avance un grand merci.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Le tri automatique ne fonctionne que sur des colonnes.
Un code qui fait ce que tu à demandé.
Clic droit sur l'onglet de la feuille >> Visualiser le code.
Dans cette feuille tu colle.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As Boolean, R As Long, i As Integer, V As Double
    If Target.Count > 1 Then Exit Sub ' pour les sélection
  If Not Intersect(Columns(4), Target.Columns) Is Nothing Then
        Application.EnableEvents = False
        R = Target.Row: B = True
        While B
            B = False
            For i = 1 To 3
                If Cells(R, i + 1) < Cells(R, i) Then
                    V = Cells(R, i): Cells(R, i) = Cells(R, i + 1)
                    Cells(R, i + 1) = V: B = True
                End If
            Next i
        Wend
        If R > 1 Then Cells(1, 6).Copy Cells(R, 6)
        Application.EnableEvents = True
    End If
End Sub

Ça devrais aller
A+
0