Remonter des lignes en remplissant des lignes vides

Résolu/Fermé
Denis57 - 21 janv. 2016 à 22:51
 Denis 57 - 27 janv. 2016 à 11:51
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
22 janv. 2016 à 10:19
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
Bonjour


Rien ne se passe après avoir cliqué sur le bouton d'exécution de la macro.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
22 janv. 2016 à 10:51
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
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 lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 713
23 janv. 2016 à 21:47
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
Bonjour


Cela marche

Merci
0