pou pouille
XLDnaute Nouveau
bonjour,
je souhaite comme le titre l'indique réorganiser les lignes d'un tableau.
ce que je souhaite c'est d'avoir toutes les lignes en premier dont la colonne en C commence par un 0.
ensuite, toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule n'est ni un B ,ni un C.
ensuite toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule en G est un B.
ensuite toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule en G est un C.
et pour finir toutes les lignes dont la colonne C varie de 10000 à 29900.
j'ai écrit un code qui "devrait" effectuer ce tri à l'envers mais cela ne fonctionne pas.
je poste mon code de tri:
et en pièce jointe le fichier à traiter ainsi que le fichier excel avec sa macro.
Merci à ceux qui étudiron ce que j'ai écrit.
Pou Pouille
je souhaite comme le titre l'indique réorganiser les lignes d'un tableau.
ce que je souhaite c'est d'avoir toutes les lignes en premier dont la colonne en C commence par un 0.
ensuite, toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule n'est ni un B ,ni un C.
ensuite toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule en G est un B.
ensuite toutes les lignes dont la colonne en C varie de 1à24 et que la dernière lettre de la cellule en G est un C.
et pour finir toutes les lignes dont la colonne C varie de 10000 à 29900.
j'ai écrit un code qui "devrait" effectuer ce tri à l'envers mais cela ne fonctionne pas.
je poste mon code de tri:
Code:
lignes = Application.WorksheetFunction.CountA(Range("C1:C65536")) - 1
For D = 29900 To 10000 Step -100
If Range("C" & lignes).Value = D Then
Rows(1).Insert shift:=xlUp
Rows(1).Value = Rows(B + 1).Value
Rows(B + 1).Delete shift:=xlUp
Else: lignes = lignes - 1
End If
Next D
lignes = Application.WorksheetFunction.CountA(Range("C1:C65536")) - 1
For B = lignes To 1 Step -1
If Range("C" & lignes).Value = 0 Then
Rows(1).Insert shift:=xlUp
Rows(1).Value = Rows(B + 1).Value
Rows(B + 1).Delete shift:=xlUp
Else: lignes = lignes - 1
End If
Next B
lignes = Application.WorksheetFunction.CountA(Range("C1:C65536")) - 1
'première case
For X = 24 To 1 Step -1
For C = lignes To 1 Step -1
If Range("C" & lignes).Value = X And Not Right(Range("G" & lignes), 1) = "B" And Not Right(Range("G" & lignes), 1) = "C" Then
Rows(1).Insert shift:=xlUp
Rows(1).Value = Rows(C).Value
Rows(C).Delete shift:=xlUp
Else: lignes = lignes - 1
End If
Next C
Next X
lignes = Application.WorksheetFunction.CountA(Range("C1:C65536")) - 1
'deuxième case
For X = 24 To 1 Step -1
For C = lignes To 1 Step -1
If Range("C" & lignes).Value = X And Right(Range("G" & lignes), 1) = "B" Then
Rows(1).Insert shift:=xlUp
Rows(1).Value = Rows(C).Value
Rows(C).Delete shift:=xlUp
Else: lignes = lignes - 1
End If
Next C
Next X
lignes = Application.WorksheetFunction.CountA(Range("C1:C65536")) - 1
'troisième case
For X = 24 To 1 Step -1
For C = lignes To 1 Step -1
If Range("C" & lignes).Value = X And Right(Range("G" & lignes), 1) = "C" Then
Rows(1).Insert shift:=xlUp
Rows(1).Value = Rows(C).Value
Rows(C).Delete shift:=xlUp
Else: lignes = lignes - 1
End If
Next C
Next X
Merci à ceux qui étudiron ce que j'ai écrit.
Pou Pouille