IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer Lignes vides avec exceptions sur colonnes choisies


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistance / Assurance
    Inscrit en
    Février 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Assistance / Assurance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Supprimer Lignes vides avec exceptions sur colonnes choisies
    Bonjour à toutes et à tous,

    Je cherche une petite fonction qui supprime les lignes vides, j'ai trouvé celle-ci qui fonctionne à merveille mais que j'aimerai modifier, et je n'y connais pas grand chose en VBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub suppr_lignes_vides()
    For lin = Cells.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
    If Rows(lin).Find("*") Is Nothing Then Rows(lin).Delete
    Next lin
    End Sub
    J'ai joins un fichier exemple, il faudrait que la fonction supprime les lignes vides, et ce sans tenir compte des colonnes C, F et I, c'est à dire qu'il supprime la ligne même si il y a quelque chose dans ces colonnes.

    En Feuil2 j'ai mis le résultat attendu.

    J'espère être clair,

    Un énorme merci d'avance à celles et ceux qui pourront m'aider!

    Stan
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    retraité enseignement
    Inscrit en
    Mars 2013
    Messages
    213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Saône (Franche Comté)

    Informations professionnelles :
    Activité : retraité enseignement
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 213
    Points : 442
    Points
    442
    Par défaut
    ... il faudrait que la fonction supprime les lignes vides, et ce sans tenir compte des colonnes C, F et I, c'est à dire qu'il supprime la ligne même si il y a quelque chose dans ces colonnes...
    Bonsoir,

    J'ai testé les cellules par ligne ( vides ou numériques) je pense que cela devrait répondre au problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub suppr_lignes_vides()
     
    Dim r As Range
    Dim ws As Worksheet
    Dim lin As Integer, col As Integer
     
    Set ws = Worksheets("feuil1")
    Set r = ws.Cells.SpecialCells(xlCellTypeLastCell)
     
    With ws
    For lin = r.Row To 1 Step -1
      col = .Rows(lin).Cells.SpecialCells(xlCellTypeLastCell).Column
      c = 1
      While (IsNumeric(.Cells(lin, c)) Or .Cells(lin, c).Value = "") And c <= col
        c = c + 1
      Wend
      If c > col Then .Rows(lin).Delete
    Next lin
    End With
    End Sub
    Je joins le fichier avant exécution pour voir le fonctionnement :

    MarechercheSupprLignesVidescor.xlsm

    a vous...

    geogeo70

  3. #3
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour le fil, bonjour le forum,

    Une autre proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
    Dim I As Integer 'déclare la variable I (Incrément)
    Dim J As Integer 'déclare la variable J (incrément)
    Dim TL As Range 'déclare la variable TL (Tableau de Lignes)
    Dim TEST As Boolean 'déclare la variable TEST
     
    Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
    Set O = Sheets("Feuil1") 'définit l'onget O
    TC = O.Range("A1").CurrentRegion 'définit le tableau de cellules TC
    Set TL = O.Range("A1") 'initialise la plage TL
    For I = 2 To UBound(TC, 1) 'boucles 1 : sur toutes les lignes du tableau TC (en partant de la seconde)
        TEST = False 'initialise la variable TEST
        For J = 1 To UBound(TC, 2) 'boucle 2 : sur toutes les colonnes du tableau TC
            Select Case J 'agit en fonction de la colonne J
                Case 1, 2, 4, 5, 7, 8 'cas pour les colonnes 1, 2, 4, 5, 7 et 8
                    If TC(I, J) <> "" Then TEST = True 'si la valeur en ligne I , colonne J du tableau TC n'est pas vide, définit la variable TEST
            End Select 'fin de l'action en fonction de la colonne J
        Next J 'prochaine colonne de la boucle 2
        'si TEST est [Faux], redéfinit la plage PL (si nombre de cellules contenues dans PL vaut 1, TL est la ligne I,
        'sinon, TL est l'union de TL et de la ligne I)
        If TEST = False Then Set TL = IIf(TL.Cells.Count = 1, O.Rows(I), Application.Union(TL, O.Rows(I)))
    Next I 'prochaine ligne de la boucle 1
    TL.Delete 'supprime la palge TL
    Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
    End Sub

Discussions similaires

  1. [XL-2000] Supprimer ligne si cellule d'une colonne = 0, sur une plage de cellules
    Par audesara dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/05/2011, 16h16
  2. [XL-2007] Somme avec multicritères sur colonne+ligne
    Par jrc11 dans le forum Excel
    Réponses: 2
    Dernier message: 03/10/2010, 22h42
  3. Supprimer les lignes vides avec Notepad++
    Par Monstros Velu dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 25/04/2009, 01h16
  4. Réponses: 4
    Dernier message: 24/09/2008, 01h00
  5. table avec recherche sur colonne
    Par wincroc dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 31/05/2007, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo