Déplacer les valeurs de cellules non vides vers les cellules vides les plus proches à gauche


0

J'ai beaucoup de lignes formatées comme ceci:

COLS : A | B | C | D | E
  01 : 1 |   | 8 | 3 |
  02 :   | 3 | 2 | 4 | 7
  03 : 9 |   | 5 |   | 6

Comment puis-je décaler les valeurs vers la gauche pour ne pas avoir de cellules vides? L'objectif est:

COLS : A | B | C | D | E
  01 : 1 | 8 | 3 |   |
  02 : 3 | 2 | 4 | 7 |
  03 : 9 | 5 | 6 |   | 

Réponses:


1

Assurez-vous que vous n'avez qu'une seule cellule sélectionnée.

  1. Appuyez sur F5
  2. Cliquez sur le bouton "Spécial ..."
  3. Sélectionnez "Vierges" et cliquez sur OK
  4. Faites un clic droit et sélectionnez "Supprimer ..."
  5. Sélectionnez l'option "Décaler les cellules à gauche" et appuyez sur OK.

J'utilise 2010, donc c'est peut-être un peu différent pour 2013, mais j'espère que c'est à peu près la même chose.


0

Quelque chose comme:

Sub DataCompactor()
    Dim iRows As Long, iCol As Long
    Dim i As Long, j As Long, r As Range

    iRows = 3
    iCols = 5

    For i = 1 To iRows
        For j = iCols To 1 Step -1
            Set r = Cells(i, j)
            If r.Value = "" Then r.Delete Shift:=xlToLeft
        Next j
    Next i
End Sub

Si les cellules sont vraiment vides, vous pouvez utiliser SpecialCellset éviter les boucles.

EDIT # 1:

Les macros sont très faciles à installer et à utiliser:

  1. ALT-F11 ouvre la fenêtre VBE
  2. ALT-I ALT-M ouvre un nouveau module
  3. collez le contenu et fermez la fenêtre VBE

Si vous enregistrez le classeur, la macro sera enregistrée avec celui-ci. Si vous utilisez une version d'Excel ultérieure à 2003, vous devez enregistrer le fichier au format .xlsm plutôt que .xlsx.

Vous devez modifier les valeurs 3 et 5 pour qu'elles correspondent à votre structure de données réelle.

Pour supprimer la macro:

  1. afficher la fenêtre VBE comme ci-dessus
  2. effacer le code
  3. ferme la fenêtre VBE

Pour utiliser la macro d'Excel:

  1. ALT-F8
  2. Sélectionnez la macro
  3. Touchez RUN

Pour en savoir plus sur les macros en général, voir:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

et

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Les macros doivent être activées pour que cela fonctionne!


Comment puis-je l'utiliser? Désolé .. je suis nouveau à ce .. Aussi c'est un exemple .. J'ai environ 4k rangées
Onilol

@Onilol See my EDIT # 1
Etudiant de Gary

@Onilol N'oubliez pas de réparer iRowsetiCols
Gary's Student

0

Si la demande consiste à déplacer les cellules vers la gauche au lieu de les supprimer (car il faut garder le reste des colonnes fixes en dehors de la plage), que peut-on faire?

Fondamentalement, dans l'exemple original, cela signifie que tout contenu commençant par la colonne de mon choix, sans modification à gauche, que faut-il faire?


1
Bienvenue sur SuperUser! Votre message semble être une question plutôt qu'une réponse. Votre question attirera l'attention appropriée si vous la postez comme une nouvelle question. Vous constaterez que vous aurez une meilleure expérience si vous prenez le temps de faire une visite guidée du débordement de pile et de consulter les directives du site sur la façon de demander et de répondre . Si vous suivez les normes de la communauté Stack Overflow et que vous l'abordez avec une attitude d'aider les autres aussi, cela vous sera très utile.
Rey Juna
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.