Tri par comparaison

Bonjour,

Je sollicite de nouveau votre aide,

Je cherche à comparer des cases deux à deux et de passer la ligne contenant la case à la valeur supérieur en dessous de celle qui à la valeur inférieur.

Mon code :
Sub tri()
Dim n As Integer
Dim o As Integer


With Worksheets("Enregistrements interventions")
For n = 5 To 150
    For o = 1 To 150
    If .Range("F" & n).Value > .Range("F" & n + o) Then
    .Rows(n).Cut
    .Rows(n + o).Insert Shift:=xlDown

    End If
    Next
    
    Next
    End With
    
    

End Sub


C'est la ligne "
 .Rows(n + o).Insert Shift:=xlDown
" qui pose problème.

Merci pour votre aide,
DGVDR

8 réponses

  1. Ça fonctionne.
    En début de feuille = Option Explicit
    Pour plus d'assurance : If .Range("F" & n).Value > .Range("F" & n + o).Value Then
    Ceci .Rows(n + o).Insert Shift:=xlDown
    ou cela .Rows(NoLigne + o & ":" & NoLigne + o).Select
    Selection.Insert Shift:=xlDown
    fonctionne
    1. Bonjour Heliotte,

      Merci pour cette réponse,

      Ceci dit, ca ne marche pas chez moi...

      Mon code actuel :
      Option Explicit
      Sub tri()
      Dim n As Integer
      Dim o As Integer
      
      
      With Worksheets("Enregistrements interventions")
      For n = 5 To 150
          For o = 1 To 150
          If .Range("F" & n).Value > .Range("F" & n + o) Then
          .Rows(n).Cut
          .Rows(n + o).Insert Shift:=xlUp
      
          End If
          Next o
          
          Next n
          End With
          
          
      
      End Sub
      


      C'est toujours la ligne " .Rows(n + o).Insert Shift:=xlUp" qui pose problème
      Cette ligne ayant pour but de m'insérer la ligne couper par
      .Rows(n).Cut 
      en dessous de la ligne à l'indice (n+o)...

      Je ne trouve pas l'erreur... ( erreur 1004 )

      Merci,
      DGVDR
      1. C'est vraiment le code de coupe/colle qui me manque, avec le fait de coller en dessous .
        1. Bonjour DGVDR,
          .Rows(n).Cut coupe la ligne(n)
          .Rows(n + o).Insert Shift:=xlUp insère une ligne à la ligne (n+o), puis colle ce que tu viens de couper
          Quelle est la version d'Excel .. j'ai Excel 2003
          1. Bonjour DGVDR,
            Je ne pourrais pas mieux t'aider, je n'ai que la version 2003 .. désolé
            Tu peux essayer avec l'enregistreur de macro en Excel .. après tu modifies le code à ta façon.
            1. Bonjour,

              Merci malgré tout pour ton aide Heliotte,

              Quelqu'un pourrait-il éclairer notre lanterne ?

              DGVDR
              1. Au cas où personne ne répond à ton appel, c'est préférable de clôturer ce message et d'en créer un nouveau. Peut-être que "michel_m" le verra et pourra certainement t'aider