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:
ALT-F11 ouvre la fenêtre VBE
ALT-I ALT-M ouvre un nouveau module
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:
afficher la fenêtre VBE comme ci-dessus
effacer le code
ferme la fenêtre VBE
Pour utiliser la macro d'Excel:
ALT-F8
Sélectionnez la macro
Touchez RUN
Pour en savoir plus sur les macros en général, voir:
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?
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.
iRows
etiCols
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?
la source