suppression de ligne

J

JEAN MICHEL

Guest
BONJOUR

sur une feuille excel je voudrais supprimer les lignes correspondantes aux cellules vides dans la plage D4.D100
j"ai essaye cette macro trouvee sur cet excelent forum mais je n'ai pas reussi a l'adapter a mon cas
encore merci

'efface la ligne si colonne D =0
Dim NumCol As Byte
Dim NumLig As Integer, i As Integer
Range("D4:D100").Select
NumCol = ActiveCell.Column
NumLig = Range(Cells(100, NumCol).Address).End(xlUp).Row

Application.ScreenUpdating = False
For i = NumLig To 1 Step -1
If Cells(i, NumCol) = "" Then Rows(i).Delete
Next i
Application.ScreenUpdating = True
 
C

coyote

Guest
Autres choses

Les lignes vides seront effacés jusqu'à la ligne 1 alors que tu veux t'arrêter à D4

Pour rectifier le tir

For i = NumLig To 4 Step -1

La sélection de D4 à D100 n'est pas nécessaire; il suffit de sélection une cellule de la colonne à traîter

Donc Range("D1").Select

La formule NumLig = Cells(100, NumCol).End(xlUp).Row
définit le départ à la 1er ligne vierge en remontant à partir de la ligne 100

Puis l'arrêt se fait en ligne 4 par la boucle
For i = NumLig To 4 Step -1 qui commence à la valeur calculé précedement (Numlig) et incrémente de -1 (Step -1) chaque boucle pour s'arrêter après avoir I=4
 
C

coyote

Guest
Voici déjà une possibilité

Sub dellig()

****** mettre les instructions macros ci dessus*******

End sub


Pour appeler la macro

dans Excel avec le raccourci ALT+F8 la liste des macros nommés apparaît (ici dellig), il suffit de l'executer

D'autres solutions possibles qui s'active par évenement mais suis pas assez pédagogue pour te fournir une explication spontanée
 
J

JEAN MICHEL

Guest
merci coyote ca marche la correction fut la bienvenue
ci joint un exemple pour dango daniel et les autres

merci a tous
 

Pièces jointes

  • exemple.zip
    8.5 KB · Affichages: 33
  • exemple.zip
    8.5 KB · Affichages: 29
  • exemple.zip
    8.5 KB · Affichages: 32
E

Eric

Guest
Bonjour Jean Michel ainsi qu'à tous & à toutes,

Intéressé par la macro zippée, je me suis empressé de la télécharger.
Néanmoins et bien que le code ai l'air correct (Je débute), cela ne marche pas du tout. J'enlève des données mais la macro (qui parcours le tableau)
n'ôte aucune ligne. ...

Merci pour la soluce.
Je sis sous Excel 2000

A ++

Eric C
 
E

Eric

Guest
Rebonjour

Non, rien de rien. J'ai même essayé de supprimer toutesles
données de la colonne D mais en vain.

J'essaierai demain au bureau avec EXCEL 97 mais je
n'y crois pas car le code a l'air correct.

Tu as bien essayé avec le code de ton fil (Clic droit Ouvrir) ??

A ++

Eric C
 
M

Michel_M

Guest
Bonjour à tous


Ci dessous une proposition pour supprimer les lignes vides: on ne boucle que sur le nombre de lignes vides…


Sub supprimer_ligne()

Dim cptr, nbre As Byte

'nombre de cellules vides
nbre = WorksheetFunction.CountBlank(Range("D4:D100"))

cptr = 1
While cptr <= nbre
'numéro de la 1° ligne vide
lig = Columns(4).Find("", [D3], , , xlByRows).Row
Rows(lig).Delete
cptr = cptr + 1
Wend

End Sub

A+
Michel
 
D

Dango

Guest
Bonjour à tous,
Merci Jean Michel, ça marche impec et je l'ai adapter hier soir à l'un de mes fichier.
Si je n'ai pu te répondre avant, c'est qu'hier soir j'avais du mal à revenir sur le Forum.
Entretemps, d'autres forumeurs ont fait des propositions... C'est bien car celà permet de voir qu'il peut exister plusieurs solutions.
Je prends!
Encore Merci et à bientôt.
Daniel
 

Discussions similaires

Statistiques des forums

Discussions
313 101
Messages
2 095 286
Membres
106 243
dernier inscrit
Zamot