Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : effacer lignes blanches (vides) dans un tableau xls [ Langages dérivés / VBA ] (lenico95)

vendredi 15 février 2008 à 19:09:48 | effacer lignes blanches (vides) dans un tableau xls

lenico95

Bonsoir à tous,
je viens de créer un tableau dans excel à partir d'informations brutes d'un fichier texte.
Ma macro me permet de rappatrier les informations qui me sont utiles et de me générer tout cela dans un tableau sur une feuille excel.
Mon souci est qu'à l'interieur de ce tableau (qui regroupe + de 40000 lignes) j'ai des lignes blanches.
Quelqu'un a t'il une idée pour remedier à cela ? Une macro qui effacerait toutes les lignes blanches de mon tableau? mais pas mes cellules vides car par exemple, la cellule A6 est vide mais pas B6 donc ma ligne 6 ne doit absolument pas être effacée.
En espérant avoir été assez clair, bonne soirée à tous et merci d'avance.
 

vendredi 15 février 2008 à 19:36:30 | Re : effacer lignes blanches (vides) dans un tableau xls

jack

Administrateur CodeS-SourceS
Réponse acceptée !
Salut
Catégorie de la question modifiée en VBA

Je crains qu'il faille passer par une macro qui scanne les 40000 lignes.
Voici l'idée :
Une boucle  For-Next pour passer en revue les lignes
Une boucle  For-Next imbriquée pour passer en revue les quelques colonnes de cette ligne
Si, arrivé àa la dernière colonne, toutes les cellules sont vides, alors :
   Sélection complète de la ligne
   Suppression de la ligne en faisant remonter les suivantes vers le haut
   Recommencer le test des colonnes sur la même ligne (car la ligne courante est maintenant la ligne d'après)

Je n'ai pas en mémoire la syntaxe VBA pour te fournir du code, désolé.
En VB6, cela aurait pu ressembler à ça (VBA ressemblant, sauf adressage des cellules)
   For r = 1 To 40000   ' Lignes
      Do While Not Trouvé
         Trouvé = False
         For t = 1 To 18   ' Colonnes
            If  laCellule(r, t) <> "" Then
               Trouvé = True
               Exit For
            End If
         Next t
         If Not Trouvé
            Selecter laLigne(r)
            Supprimer laLigneActuelle en faisant remonter les suivantes
         End If
      Loop
      DoEvents
   Next r

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

vendredi 15 février 2008 à 19:55:25 | Re : effacer lignes blanches (vides) dans un tableau xls

zen69

Au pire ajoute a ta feuille apres la derniere colonne quelque chose comme ca...
ex si tu as 3 colonne

colonne d1 formula = IF(TRIM(A1&B1&B3)="", "del", "keep")

puis faire un fill down sur la colonne, puis descendre ligne par linge (ou creer un autofilter) et delete les lines que la colone D contient "del"

Mais je pense que la solution de jack est plus optimisée.

À toi de voir.


  zen69 aka Ortho Le Profett
  [site web]

vendredi 15 février 2008 à 20:47:40 | Re : effacer lignes blanches (vides) dans un tableau xls

jack

Administrateur CodeS-SourceS
Réponse acceptée !
PS : J'y pense en relisant
Pense à bien dimensionner le '40000' dans la boucle car, à la fin du fichier, toutes les lignes sont vides.
Il va donc décaler les lignes à l'infini puisqu'il n'incrémente pas le n° de ligne en cas de suppression.
Peut-être en ajoutant manuellement un mot clé à la dernière ligne, colonne A, genre {Fin de fichier}
Chaine qu'il sera facile de repérer et mettre fin à la boucle (avec Exit For) en cas de rencontre.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

vendredi 15 février 2008 à 23:17:06 | Re : effacer lignes blanches (vides) dans un tableau xls

MPi

As-tu essayé de trier ta feuille ?
Normallement, un simple tri décalera les lignes vides en bas.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI


samedi 16 février 2008 à 00:49:21 | Re : effacer lignes blanches (vides) dans un tableau xls

lenico95

Merci pour vos réponses en particulier à Jack : Ma macro ne fonctionnait pas tout simplement parce que j'avais oublié de lui dire de s'arréter à la dernière ligne de mon tableau. donc les lignes vides du dessous était supprimées et ça tournait en boucle.
Nicolas



Cette discussion est classé dans : tableau, lignes, effacer, vides, blanches


Répondre à ce message

Sujets en rapport avec ce message

supprimer les lignes vides dans un tableau excel [ par nicosne ] Slt,je voudrais savoir comment faire pour supprimer les lignes vides a l'aide d'une macro.En effet j'importe régulièrement des fichier txt dans des do VB.Net Effacer une ligne dans un Tableau [ par JeffC1977 ] <table class="nb4" id="ctl00_CPH1_Message_UCForumMessage1_DGMsg" style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; WIDTH Tableau et lignes vides [ par poulp ] Bonjour je souhaiterai savoir comment supprimer les lignes vide d'un tableau et donc le redimentionner avec que les lignes ne contenant que des inform effacer lignes "vides" [ par koolman61 ] bonjour,voici mon problème.Je travaille sur plusieurs classeurs dont 1 que j'apellerais saisie et les autres archive1, 2, 3....le problème est que je tableau insérer ligne [ par chamicki ] Bonjour à tous,J'ai besoin de votre aide... j'ai créé un programme ou j'ai un tableau de string :Tab as string ( )ou je cherche dans ce tableau des li Effacer des occurences [ par ydu ] Bonjour à tous et à toutes.Je bloc sur un problème depuis un certain temps. J'ai une suite de ligne et je souhaites appliquer un traitement à ces lign cellules vides dans tableaux liés [ par pafacile ] Bonjour tout le monde,Petite question rapide pour vous,Voici mon problème:J'ai deux tableaux dans excel situés dans deux Classeurs DIFFÉRENTS qui sont Suppression lignes antérieures a une date [ par emccbo ] Bonjour,Je débute avec le vba d'excel et je souhaiterais supprimer les lignes antérieures a une date spécifiée dans un tableau. Voici ce que j'ai fait VB.Net Vider un tableau [ par JeffC1977 ] Salut...J'ai une question toute bête...Comment fait-on pour vider un tableau ???Par exemple, mon tableau contient 1 colonne et 20 lignes.... J'aimerai Réaliser plusieurs graphiques à partir d'un tableau [ par Jon59 ] Bonjour,Voici ce que je souhaiterais réaliser:J'extrais un tableau vers excel d'une base de donnée. je remets en forme le tableau, jusque la ça va, ma


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.