Petite macro pour supprimer cellules vides

F

flavian

Guest
Bonjour a tout le forum,


J’ai un probleme que je n’arrive pas a resoudre sur Excel 2000, j‘aimerai faire une macro qui permettrai de supprimer les cellules vides dans les colonne C et D et la seulement la premiere cellule vides apres une cellule non vide dans la colonne B.

Je pense qu’ avce un exemple on comprend mieux, les cellules en jaune sont celle que je voudrai effacer en sachant que le fichier peut contenir des milliers de lignes..

Merci beaucoup de votre aide.

P.S: Je tyrouve l'idee de ce forum geniale [file name=Macroessai.zip size=3760]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Macroessai.zip[/file]
 

Pièces jointes

  • Macroessai.zip
    3.7 KB · Affichages: 136
  • Macroessai.zip
    3.7 KB · Affichages: 140
  • Macroessai.zip
    3.7 KB · Affichages: 140

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Flavian, bonsoir le forum,

Flavian, essaie avec la macro commentée ci-dessous et dis-moi si ça te convient.


Option Explicit 'oblige à déclarer toutes les variables

Sub Macro1()
Dim Dl(2) As Integer 'déclare le tableau de trois variables Dl (Dernière lignes Dl(0), Dl(1) et Dl(2))
Dim x As Byte, y As Integer 'déclare les variables x et y

For x = 0 To 2 'boucle sur 3 items (tois colonnes B, C et D )
'définit la dernière ligne éditée de chaque colonne (et considère celle immédiatement en dessous)
Dl(x) = Cells(65536, x + 2).End(xlUp).Row + 1 'c'est (x+2) qui détermine la colonne

For y = Dl(x) To 2 Step -1 'boucle sur la plages éditée +1 de la colonne (en partant de la fin)

If x = 0 Then 'condition 1 : si x=0 (cas différent pour la colonne B )
'condition 2 : Si la cellule est vide et celle du dessus n'est pas vide
If Cells(y, x + 2).Value = '' And Cells(y - 1, x + 2).Value <> '' Then
Cells(y, x + 2).Delete Shift:=xlUp 'efface la cellule
End If 'fin condition 2
Else 'sinon (colonnes C et D)
'condition 3 : si la cellule est vide elle est supprimée (fin condition 3)
If Cells(y, x + 2).Value = '' Then Cells(y, x + 2).Delete Shift:=xlUp
End If 'fin condition 1

Next y 'prochain cellule de la colonne

Next x 'prochaine colonne
End Sub

Édition

Je joins aussi ton fichier modifié. [file name=Macroessai2.zip size=9662]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Macroessai2.zip[/file]

Message édité par: Robert, à: 09/07/2005 10:37
 

Pièces jointes

  • Macroessai2.zip
    9.4 KB · Affichages: 211
F

flavian

Guest
Merci vraiment beaucoup Robert pour ta precieuse aide.
Je ne veux pas abuser mais mon niveau en macro est tres leger, et comment dois je faire si je veux supprimer aussi la cellule de la colonne a droite. En fait dans ce fichier je supprime C2 D2 et B3 et je souhaite aussi supprimer A3 et ainsi de suite.


Dans tous les cas merci beaucoup de votre aide precieuse.

Flavian
 

Discussions similaires

Statistiques des forums

Discussions
312 342
Messages
2 087 436
Membres
103 545
dernier inscrit
agent3