Code pour supprimer cellules vides décaler vers le haut

loulouange

XLDnaute Occasionnel
Bonsoir,

J'ai crée un bordereau qui servira à la fois pour le chargement de marchandises ainsi que pour la livraison.

Pour ce faire, j'ai réalisé une matrice dans la feuille1, j'ai fait une copie de cette dernière dans la feuille2
et fait des renvois des cellules de la feuile1 vers la feuille2.

Dans la feuille1, chaque marchandise est listée par ordre chronologique de 1 à 10, ordre chargement.

Dans la feuille2, il faut que cette liste soit classée cette fois-ci par ordre décroissant, donc de 10 à 1.

J'ai donc crée un bouton (voir cellule K14) et rajouté une colonne de 1 à 10 pour refaire ce tri décroissant car je souhaite conserve l'ordre d'origine dans la cellule A. Le problème est que si par exemple je n'ai que 5 chargements, celles-ci seront bien listées par ordre décroissant mais vont se retrouver en bas du tableau.

Par exemple :

Feuille1 :
1 - A
2 - B
3 - C
4 - D

Résultat dans la Feuille2 après le tri décroissant :

7 - D
8 - C
9 - B
10 - A

Je voudrais savoir s'il y a moyen de faire ce tri en supprimant les cellules vides afin d'obtenir au final ceci :

1 - D
2 - C
3 - B
4 - A

Dans la feuille Route(2) j'ai tenté de mettre un code pour faire cette manipulation, d'une il manque certaines lignes, et d'autre part le fait de supprimer les cellules vers le haut supprime de ce fait les bordures du tableau.

Je vous mets en pièce jointe le fichier en question afin de vous permettre de mieux comprendre le problème.

Vous remerciant par avance pour votre aide.
 

Pièces jointes

  • Feuille de route test macro 2.xlsm
    37.9 KB · Affichages: 39

camarchepas

XLDnaute Barbatruc
Re : Code pour supprimer cellules vides décaler vers le haut

Bonjour ,

a ajouter aprés le tri ;
L'on ne peut pas chercher les cellules vides puisque il y a des formules partout ,
il faut donc faire un test sur valeur = 0 dans une boucle afin de supprimer les lignes indésirables

Code:
Dim Ligne As Long

For Ligne = 26 To 17 Step -1
  If Range("D" & Ligne).Value = 0 Then Range("d" & Ligne & ":J" & Ligne).Delete xlShiftUp
Next Ligne
 

loulouange

XLDnaute Occasionnel
Re : Code pour supprimer cellules vides décaler vers le haut

Bonsoir,

Merci camarchepas pour ton aide, ça fonctionnement !!

Du coup pour mes problèmes de bordures qui sautent suite aux suppressions de cellules, j'ai rajouté des lignes en page 2 et c'est parfait !

Encore merci.

Bonne soirée
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972