Remonter des lignes en remplissant des lignes vides

Résolu
Denis57 -  
 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








4 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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)
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
0
Denis57
 
Bonjour


Rien ne se passe après avoir cliqué sur le bouton d'exécution de la macro.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
Sub supprim()
On error go to nul
Range(BW2:BX11).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
exit sub
nul:
msgbox "aucun vide"
end sub
--
 Michel
0
Denis57
 
Bonjour

Suite à des messages d'Excel j ai remplacé "go to" par "GoTo" et mis des guillemets à "BW12:BX11".
Plus de message d'erreur mais les données dans les cellules ne bougent pas.


Denis
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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"
0
Denis 57
 
Bonjour


Cela marche

Merci
0