Autres Excel 2003 supprimer lignes vides sur tableaux "côte à côte"

  • Initiateur de la discussion Initiateur de la discussion Ross
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ross

XLDnaute Nouveau
Bonjour à tous,

Mes limites venant d'être atteintes... je me tourne vers vous pour essayer de les repousser !!

Savez vous si il est possible de supprimer les lignes vides de ces 3 tableaux situé sur le même onglet ??
(J'ai bien tenté le filtre automatique, mais de fait, cela ne marche que pour le 1er tableau et efface les suivantes )

Merci et Excellente journée
Ross
 

Pièces jointes

Bonjour,

Dans le fichier joint vous trouverez la macro ci-dessous. Sélectionnez une cellule d'un des trois tableaux et lancez-là par alt+F8 (à répéter sur les trois tableaux)

Attention, votre ligne de total en bas du premier tableau, sera supprimée si elle n'est pas séparée de celui-ci par au moins une ligne vide.

VB:
Sub TrierSupprimerLignesTableau()
    Dim tbl As Range
    Dim Lignes As Long
    '
    ' Récupération du tableau
    Set tbl = ActiveCell.CurrentRegion
    ' Tri des données en ordre descendant sur première colonne
    tbl.Sort Key1:=tbl.Range("A2"), Order1:=xlDescending
    ' Récupération du nombre de données en première colonne
    Lignes = Application.CountIf(tbl.Columns(1), "*?")
    ' Si différence du nombre de lignes total du tableau et le nombre de données en colonne 1
    If Lignes < tbl.Rows.Count Then
        'Suppression des lignes
        tbl.Cells(Lignes + 1, 1).Resize(tbl.Rows.Count - Lignes, tbl.Columns.Count).Delete xlShiftUp
    End If
End Sub

Cette macro tri le tableau sur 'Commune' de Z à A pour avoir les lignes 'vides' en bas,
elle calcule le nombre de 'Données' dans la première colonne, s'il y a une différence avec le nombre total de lignes, elles supprime les lignes sans données.



cordialement
 

Pièces jointes

Re,

Oui, désolé j'avais oublié le paramètre Header dans le tri.

VB:
Sub TrierSupprimerLignesTableau()
    Dim tbl As Range
    Dim Lignes As Long
    '
    ' Récupération du tableau
    Set tbl = ActiveCell.CurrentRegion

    ' Récupération du nombre de données en première colonne
    Lignes = Application.CountIf(tbl.Columns(1), "*?")

    ' Si différence du nombre de lignes total du tableau -1 (entête)
    ' et le nombre de données en colonne 1
     If Lignes < tbl.Rows.Count - 1 Then
 
       ' Tri des données en ordre descendant sur première colonne
        tbl.Sort Key1:=tbl.Range("A2"), Order1:=xlDescending, Header:=xlYes

        'Suppression des lignes
        tbl.Cells(Lignes + 1, 1).Resize(tbl.Rows.Count - Lignes, tbl.Columns.Count).Delete xlShiftUp
    
End If
End Sub

bonne soirée
 
Bonjour Roblochon,
Je vous ferai bien la blague de vous dire que c'est bien ce qu'il me semblait ...il manquait Header dans le tri... mais ce serait trop gros !!

En revanche à moins que je n'ai pas la bonne procédure pour intégrer la macro... le titre reste en bas .

Si vous avez une solution, je suis toujours preneur 🙂)
Encore merci pour le temps passé
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour