Tri par comparaison

DGVDR -  
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

8 réponses

Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
Ç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
0
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
C'est vraiment le code de coupe/colle qui me manque, avec le fait de coller en dessous .
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
Heliotte,

J'ai 2010.
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
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.
0
DGVDR Messages postés 158 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Merci malgré tout pour ton aide Heliotte,

Quelqu'un pourrait-il éclairer notre lanterne ?

DGVDR
0
Heliotte Messages postés 1491 Date d'inscription   Statut Membre Dernière intervention   92
 
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
0