Tri par comparaison

Fermé
DGVDR - 14 nov. 2012 à 15:20
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 - 16 nov. 2012 à 10:27
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

Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
14 nov. 2012 à 19:28
Ç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 vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
15 nov. 2012 à 14:53
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 vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
15 nov. 2012 à 15:11
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 vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
15 nov. 2012 à 17:53
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 vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
15 nov. 2012 à 19:14
Heliotte,

J'ai 2010.
0
Heliotte Messages postés 1491 Date d'inscription vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
Modifié par Heliotte le 16/11/2012 à 07:16
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 vendredi 10 août 2012 Statut Membre Dernière intervention 20 juillet 2015
16 nov. 2012 à 08:41
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 vendredi 26 octobre 2012 Statut Membre Dernière intervention 28 janvier 2013 92
16 nov. 2012 à 10:27
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