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 case vide avec plage de donnée variable [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut Supprimer case vide avec plage de donnée variable
    Bonjour à tous,

    Je voudrais savoir si vous avez une idée de code pour la macro "supprimer les lignes" que je vous ai fournis mais pour une plage de donnée variable.

    C'est à dire que la plage de donnée pourrait varier de D1 : G100 à D1:G85 ...
    La case "D1" et la colonne "G"ne changera jamais, juste le numéro de ligne de la colonne G.
    Et évidemment, pourquoi faire simple quand on peut faire compliquée, les lignes vides ne seront jamais les mêmes et il ne faut pas supprimer la ligne entière car d'autres données sont sur cette ligne.

    J'espère que j'ai été assez claires

    J'ai une idée mais en littérale :

    Si case = vide alors
    Copier la colonne de donnée à partir de la case vide+1 jusqu'à cellule vide
    Coller sur la case vide

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    utilise les balises de codes [code] [/code] pour mettre en forme ton code avant de le poster que l'on voit où tu en est ...

  3. #3
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Justement je n'ai pas encore de code

    Je ne sais pas quelle fonction je dois utiliser, si c'est une boucle while ou un if

    Pour l'instant le code de la macro se résume à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Range("A4:E5").Select
        Selection.Cut Destination:=Range("A3:E4")
        Range("A7:E9").Select
        Selection.Cut Destination:=Range("A5:E7")
        Range("A11:E12").Select
        Selection.Cut Destination:=Range("A8:E9")
        Range("A8:E9").Select

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Et évidemment, pourquoi faire simple quand on peut faire compliquée, les lignes vides ne seront jamais les mêmes et il ne faut pas supprimer la ligne entière car d'autres données sont sur cette ligne.
    impossible de supprimer une cellule sans supprimer la ligne
    maintenant une réorganisation du tableau est envisageable
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Mais si au lieu de supprimer la ligne, on fait un copier-coller, comme cela, il n'y a aucun impact sur les autres tableau.

    En faite, il faudrait faire une lecture case par case, et dès que l'on trouve une case vide, on copie-colle la casse en dessous sur la case vide et ainsi de suite jusqu'à arrivé en bas du tableau.

    Mais je sais pas comment commençer.

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Oui on peu supprimer un ensemble de cellule ...

    utilise l'enregistreur de Macro qui t'aideras à trouver le code correspondant ... sélectionne les cellules à supprimer , puis après avoir lancer la commande supprimer ( menu contextuel par exemple) sélectionne la case d'option "Décaler les cellules vers le haut" si c'est bien cela que tu veux ... ..

  7. #7
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Ok merci je vais voir ça

  8. #8
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    j'ai trouvé ça et ça me plait beaucoup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
        Range("A1:E9").Select
        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.Delete Shift:=xlUp
    j'applique cela à mon fichier source et je vais voir après

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Pense que les Select Selection et autre activate sont inutile la plus par des cas .... mais qu'il faut préciser le classeur et la feuille de calcul concernée ton code devient :




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkBook.Sheets("Feuil1").Range("A1:E9").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp

  10. #10
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Oui, sur mon fichier source, j'ai mis cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
        'Supprime toutes les cellules vide et les décale vers le haut
        Sheets("PLAN").Select
        Columns("D:G").Select
        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.Delete Shift:=xlUp
    Cela marche bien sauf, ça supprime trop de cellule ><, j'ai des cellules vide que je veux garder.

    Par exemple :

    1 2 3 4 5
    1 2
    1 2 3 4 5
    1 2 3 4 5




    Je veux supprimer la ligne du mileu mais garder les cases vides sur la ligne où il y a 1 2

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    Je veux supprimer la ligne du mileu mais garder les cases vides sur la ligne où il y a 1 2
    je t'ai dis pécédement que c'a n'etait pas possible au mieux c'est copier les elemennnnnnnnns manquants surla ligne supperieur ou inférieur
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #12
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    je t'ai dis pécédement que c'a n'etait pas possible au mieux c'est copier les elemennnnnnnnns manquants surla ligne supperieur ou inférieur
    Pas forcément, quand tu sélectionnes ta plage, tu appuies sur F5, tu sélectionnes cellule non vide et tu peux supprimer en décalant vers le haut, ça peut supprimer des lignes ( ex : G5:L5 ) sans impacter sur les autres tableaux.

  13. #13
    Membre averti
    Homme Profil pro
    Alternant Ingénieur Méthodes
    Inscrit en
    Juin 2015
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Alternant Ingénieur Méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2015
    Messages : 25
    Par défaut
    Du coup j'ai résolu mon problème

    Mon fichier sur lequel je travaille fait des importations de fichier text, donc il arrive avec des séparateur point-virgules.Et ensuite le programme organise tout.

    Du coup j'ai mis ce code là avant l'organisation des fichiers et cela enlève bien les lignes vides,car avant l'organisation ce sont des cases :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Sheets("PLAN").Select
        Columns("D:G").Select
        Selection.SpecialCells(xlCellTypeBlanks).Select
        Selection.Delete Shift:=xlUp
    Je sais pas si c'est clair, mais en tout cas je vous remercie de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 01/04/2019, 17h34
  2. [XL-2013] Graphique avec plage de données variable
    Par CydZZ dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/10/2014, 14h05
  3. [XL-2010] Graphiques avec plage de données variables
    Par baptoo61 dans le forum Excel
    Réponses: 10
    Dernier message: 26/06/2014, 10h02
  4. [XL-2007] Creer un graph avec plage de données variables sur VBA
    Par fares paris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/07/2013, 15h49
  5. [XL-2003] Graphique avec plage de données variables
    Par yoord dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/06/2009, 11h48

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