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.

3 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. 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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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