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 :

Nettoyage cellule vide dans tableau sur excel 2010


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut Nettoyage cellule vide dans tableau sur excel 2010
    Bonjour
    j'ai un tableau conetenant des donneés dispersée dans un tableau et je souhaite nettoyer toutes les cellules vides de celui ci ( lignes et colonne) . l'objectif final est de regouper les donnees sous forme de base de donnée.

    Pour cela j'utilise les macros suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Activelazone()
    ActiveSheet.UsedRange.Select
    End Sub
    pour selectionner la zone
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub SupprimeLignevide()
    [A:H].SpecialCells(xlCellTypeBlanks).Delete shift:=xlUp
    End Sub
    pour supprimer cependant les cellules blanches des colonnes ne se suppriment pas

    Pouvez vous m'aider?
    Merci beaucoup
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    si j'ai bien compris ta problématique,pour un regroupement comme tu le spécifies, je pense que supprimer les cellule avec un Shift sur le haut n'est pas approprié

    essaye avec

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2010
    Messages : 61
    Points : 29
    Points
    29
    Par défaut
    Bonjour plus excatement je souhaite nettoyer les cellules vides des colonnes et ranger sur la même colonne les contenu identiques des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Activelazone()
    ActiveSheet.UsedRange.Select
    [A:H].SpecialCells(xlCellTypeBlanks).Delete shift:=xltoLeft
    End Sub
    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Points : 412
    Points
    412
    Par défaut
    Essaye avec ça

    Si j'ai bien compris ton besoin, dans le fichier, ça devrait le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Activelazone()
    ActiveSheet.UsedRange.SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
    End Sub
    Je ne comprends pas trop pourquoi tu sélectionnais la UsedRange pour au final de même pas l'utilise (tu appelais directement les colonnes A:H).
    Donc ma proposition travaille uniquement dans la UsedRange... Et ça semble marcher chez moi.

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut donc effectuer, ligne par ligne, un tri des valeurs, avant de réaliser ta suppression des cellules vides


    ceci semble correspondre à ton dernier classeur exemple :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Sub TriEtSuppression()
        Dim Plage As Range
     
        Application.ScreenUpdating = False
     
        With Feuil1
            ' pour chaque ligne
            For i = 2 To .UsedRange.Rows.Count
     
                ' de la colonne B jusqu'à la dernière colonne
                Set Plage = .Range(.Cells(i, 2), .Cells(i, .UsedRange.Columns.Count))
     
                With .Sort
                    With .SortFields
                        ' suppression du tri existant (s'il y en a un)
                        .Clear
                        ' ajout de la plage de tri (ascendant sur les valeurs)
                        .Add Key:=Plage, SortOn:=xlSortOnValues, Order:=xlAscending
                    End With
     
                    ' application du tri
                    .SetRange Plage
                    .Header = xlGuess
                    .MatchCase = False
                    .Orientation = xlLeftToRight
                    .SortMethod = xlPinYin
                    .Apply
     
                End With
            ' ligne suivante
            Next i
     
            ' suppression des cellules vides après avoir tout trié
            .UsedRange.SpecialCells(xlCellTypeBlanks).Delete shift:=xlToLeft
        End With
     
        Application.ScreenUpdating = True
    End Sub

Discussions similaires

  1. [XL-2010] Debuts sur VBA, remplacer toutes les cellules >0 par 1 sur Excel 2010
    Par labjo14 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/04/2014, 16h35
  2. [XL-2010] Compter cellules vides dans addition sur plusieurs feuilles
    Par bernard41 dans le forum Excel
    Réponses: 16
    Dernier message: 16/11/2013, 17h01
  3. [XL-2003] Les cellules (vides) dans un tableau croisé dynamique
    Par Mauna dans le forum Excel
    Réponses: 12
    Dernier message: 12/05/2009, 09h44
  4. Trouver les cellules vides dans un tableau de cellules
    Par ricololo dans le forum MATLAB
    Réponses: 12
    Dernier message: 13/11/2008, 15h11
  5. [VBA W] : fusionner cellules vides dans tableau
    Par camzo dans le forum VBA Word
    Réponses: 6
    Dernier message: 26/09/2007, 17h01

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