Remonter des lignes en remplissant des lignes vides
Résolu
Denis57
-
Denis 57 -
Denis 57 -
Bonjour,
Je suis devant un problème que je ne sais comment régler.
Sur une plage BW2:BX11 des lignes vides et pleines alternent. Il me faudrait remonter les lignes pleines dans leur ordre d'apparition, de façon à ce que deux lignes pleines ne soit plus séparées par une ligne vide.
Exemple
avant formule ou code VBA
ligne 2 : cellules BW, BX vides
ligne 3 : BW, BX pleines
lignes 4 à 9 : BW, BX vides
ligne 10 : BW, BX pleines
ligne 11 : BW, BX pleines
après formule ou code VBA
ligne 2 = anciennes BW3, BX3
ligne 3 = anciennes BW10, BX10
ligne 4 = anciennes BW11, BX11
lignes 5 à 11 : BW, BX vides
Trier les données ou supprimer des lignes ne peuvent répondre au problème.
Merci
Je suis devant un problème que je ne sais comment régler.
Sur une plage BW2:BX11 des lignes vides et pleines alternent. Il me faudrait remonter les lignes pleines dans leur ordre d'apparition, de façon à ce que deux lignes pleines ne soit plus séparées par une ligne vide.
Exemple
avant formule ou code VBA
ligne 2 : cellules BW, BX vides
ligne 3 : BW, BX pleines
lignes 4 à 9 : BW, BX vides
ligne 10 : BW, BX pleines
ligne 11 : BW, BX pleines
après formule ou code VBA
ligne 2 = anciennes BW3, BX3
ligne 3 = anciennes BW10, BX10
ligne 4 = anciennes BW11, BX11
lignes 5 à 11 : BW, BX vides
Trier les données ou supprimer des lignes ne peuvent répondre au problème.
Merci
A voir également:
- Remonter des lignes en remplissant des lignes vides
- Partager des photos en ligne - Guide
- Mètre en ligne - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Formulaire en ligne de meta - Guide
4 réponses
Bonjour,
C'est peut-être faisable par formule mais un peu complexe.
Ce serait faisable par tri mais pas "dans leur ordre d'apparition".
Je te propose cette petite macro qui devrait le faire (mode d'emploi)
C'est peut-être faisable par formule mais un peu complexe.
Ce serait faisable par tri mais pas "dans leur ordre d'apparition".
Je te propose cette petite macro qui devrait le faire (mode d'emploi)
Public Sub remonter() Dim lga As Long, lgn As Long, ncl As Integer, tbc tbc = Array("BW", "BX") For ncl = 0 To UBound(tbc) lgn = 2 For lga = 2 To Cells(Rows.Count, tbc(ncl)).End(xlUp).Row If Cells(lgn, tbc(ncl)) = "" And Cells(lga, tbc(ncl)) <> "" Then Cells(lgn, tbc(ncl)) = Cells(lga, tbc(ncl)) Cells(lga, tbc(ncl)) = "" lgn = lgn + 1 End If Next lga Next ncl End Sub
Bonjour
Michel
Sub supprim()--
On error go to nul
Range(BW2:BX11).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
exit sub
nul:
msgbox "aucun vide"
end sub
Michel
Bonjour à tous,
Comme l'on n'a aucune idée de ce que tu as effectivement réalisé, je te mets ton exemple sur 2 feuilles, une avec la macro de Michel ( que je salue) et une avec la mienne.
https://www.cjoint.com/c/FAxuSUTGlvl
à toi de nous dire en cliquant sur les boutons si "Rien ne se passe"
Comme l'on n'a aucune idée de ce que tu as effectivement réalisé, je te mets ton exemple sur 2 feuilles, une avec la macro de Michel ( que je salue) et une avec la mienne.
https://www.cjoint.com/c/FAxuSUTGlvl
à toi de nous dire en cliquant sur les boutons si "Rien ne se passe"
Rien ne se passe après avoir cliqué sur le bouton d'exécution de la macro.