Suprimer et décaler vers le haut
Bonjour à tous,
Je comprend que mon problème face à mon fichier excel soit quelque peu compliqué, c'est pourquoi les suggestions qui pourront me permettre d'avancer dans sa résolution seront toutes les bienvenues. Je crois que je n'aurai pas le choix d'impliquer VBA. Voici le problème:
J'ai plusieurs feuilles Excel comportant chacune une matrice de 1778 colonnes par 3160 lignes (le fichier est 300Mo). Les premières cellules du début de chaque colonnes sont composées de cellules affichant #N/A, puis viennent des cellules avec des valeurs. Chaque colonne comprend un nombre différent de cellules contenant des #N/A. Je dois supprimer et décaler vers le haut toutes les cellules contenant des #N/A de chaque feuille afin d'avoir la première valeur de chaque colonne sur la ligne 1.
Je ne suis pas très familier avec le code VBA, alors si vous croyez que la solution ne tient qu'en quelques syntaxes, ce serait grandement apprécié si vous pourriez la partager!
Je vais aussi devoir supprimer toutes les colonnes paires ou impaires (en alternance, une sur deux) mais cela viendra plus tard (quoique si vous avez un truc, il serait grandement apprécié aussi!)
Je joins un fichier excel fictif en exemple afin de vous permettre de visualiser (à petite échelle) ce que je recherche.
Je tiens à vous remercier tous à l'avance pour l'aide que vous pourriez m'apporter.
N'hésitez-pas à répondre si vous avez une piste!
Merci
- Messages
- 9'245
- Excel
- Vista Office 2007FR
- Inscrit
- 08/12/2007
- Emploi
- retraité Sce.Méthodes
Bonjour,
Pour le 1er point (supprimer les #N/A)
Sub SupprimeNA()
Dim Lg%, cL%, A%, i%, x
x = Time
Application.ScreenUpdating = False
cL = Cells(1, 2000).End(xlToLeft).Column
For A = 1 To cL
Lg = Cells(65536, A).End(xlUp).Row
For i = Lg To 1 Step -1
If IsError(Cells(i, A)) Then
Cells(i, A).Delete Shift:=xlUp
End If
Next i
Next A
MsgBox ("temps macro = " & Format(Time - x, "hh:mm:ss"))
End SubTu nous diras le temps de traitement du fichier réel, çà risque d'être assez long !)
Amicalement
Claude
Bonjour
Bonjour Claude
Une méthode manuelle qui peut-être faite par macro
Chercher/Remplacer #N/A par rien
Sélectionnes zone des données
F5 ----> Cellules --> Coches Cellules vides
Sur une cellules sélectionnée : clic droit --->Suppression --> décaler les cellules vers le haut
Bonne journée
bonjour,
Je tiens à remercier Claude et Banzai pour leurs conseils.
Je viens d'essayer la méthode de Banzai ne nécessitant aucune macro. Toutefois, l'ordinateur que j'utilise ici ne me permet de supprimer qu'environ les cellules vides d'une quinzaine de colonnes à la fois, faute de mémoire d'Excel j'imagine? Je vais essayer sur un ordinateur plus récent, et si je ne peux toujours pas supprimer les cellules vides de plus d'une quinzaine de colonnes à la fois, je vais tenter avec une macro. Maintenant que toutes mes cellules #N/A sont transformées en cellules vides, est-ce que Claude vous auriez une façon d'adapter la syntaxe de votre code, ou est-ce que Banzai saurait comment automatiser F5 -- cellules -- cocher cellules vides? (Excel ne me permet pas de cocher les cellules vides de plus d'une quinzaine de colonnes de 3160 lignes à la fois)?
Je vous redonnes des nouvelles une fois que j'aurai essayé de supprimer les cellules vides sur un autre ordinateur.
Merci beaucoup
-- 10 Juin 2011, 05:17 --
finalement avec un autre ordinateur, je suis capable de sélectionner toutes les cellules vides en une seule étape et les supprimer et les décaler vers le haut. Le problème est donc règlé! Merci beaucoup à Claude et Banzai!