[Résolu] Fonction Len

Lebonetletruand

XLDnaute Occasionnel
Bonjour à tous,

Un phénomène étrange...

Dans un tableau base de données Excel, j'ai teinté une ligne sur deux pour améliorer la visibilité.

Lorsque j'utilise la macro suivante, il me supprime uniquement les lignes teintées lorsqu'elles sont vides. C'est à dire que les lignes non teintées vides ne sont pas supprimées. Comment expliquer celà et comment résoudre mon problème.

Merci par avance

Workbooks("Etats individuels de commande.xls").Activate
For Each Feuille In Worksheets
Feuille.Activate
For k = 8 To 127
If Len(Cells(k, 1)) = 0 Then
Cells(k, 1).EntireRow.Delete

End If

Next k

Next
 
Dernière édition:

Lebonetletruand

XLDnaute Occasionnel
Re : Fonction Len

Homepyrof, ça donne le même résultat que sans Trim, donc ça supprime une ligne sur deux.

Rilcy, ton code est l'équivalent du estvide() dans une cellule. Or ma cellule de référence contient une formule, elle n'est donc pas considérée comme vide. J'ai déjà essayé, ça ne fonctionne pas non plus.

Merci pour vos réponses quand même ^^
 

Chucky

XLDnaute Nouveau
Re : Fonction Len

Salut,

essaye avec :
Workbooks("Etats individuels de commande.xls").Activate
For Each Feuille In Worksheets
Feuille.Activate
For k = 8 To 127
If Len(Cells(k, 1)) = 0 Then
Cells(k, 1).EntireRow.Delete
k=k-1

End If

Next k

next Feuille
 

Lebonetletruand

XLDnaute Occasionnel
Re : Fonction Len

Voici un fichier exemple

Sur le coté du tableau, j'ai indiqué les nombres de 1 à 98 (colonne I)
Tu verras, lorsque tu actives la macro, il ne reste que les nombres pairs, ce qui signifie que seules les lignes teintées sont supprimées.

Vraiment bizarre..... je ne comprends pas
 

Pièces jointes

  • Fonction Len.xls
    43 KB · Affichages: 46

Lebonetletruand

XLDnaute Occasionnel
Re : Fonction Len

Chucky, c'est une boucle sans fin ton code, il faut inverser 8 To 127 par 127 To 8 je suppose mais la boucle inversée ne fonctionne pas non plus. Comme répondu à MJ13 ci dessus, ça ne supprime plus du tout les lignes vides, qu'elles soient teintées ou pas.
 

pierrejean

XLDnaute Barbatruc
Re : Fonction Len

Re

La solution de MJ13 etait la bonne !!
Dans le cas d'effacement de lignes il est imperatif de commencer par la fin sous peine de voir la numerotation changer a chaque effacement

Edit Salut ROGER :)
 

Pièces jointes

  • Fonction Len.zip
    15.3 KB · Affichages: 26

ROGER2327

XLDnaute Barbatruc
Re : Fonction Len

Suite...
Fichier joint...​
ROGER2327
#4418


Mercredi 25 Haha 138 (Saint J-P Brisset, philologue, prince des penseurs, SQ)
9 Brumaire An CCXIX
2010-W43-6T14:47:45Z

_____________________
Postscriptum : Bonjour pierrejean... plus rapide, pierrejean...
 

Pièces jointes

  • Len.xls
    39.5 KB · Affichages: 39
  • Len.xls
    39.5 KB · Affichages: 46
  • Len.xls
    39.5 KB · Affichages: 41

Lebonetletruand

XLDnaute Occasionnel
Re : Fonction Len

Désolé MJ, je n'avais pas vu le step-1 et j'avais seulement modifié le sens de boucle. Autant pour moi
Merci Roger et PierreJean, c'est ok maintenant
Pour info pour les autres, je fais suivre l'exemple final de macro
Sub supprimerligne()
Workbooks("Etats individuels de commande.xls").Activate
For Each Feuille In Worksheets
Feuille.Activate
For k = 127 To 8 Step -1
If Len(Trim(Cells(k, 1))) = 0 Then
Cells(k, 1).EntireRow.Delete
End If
Next k
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 950
Membres
103 989
dernier inscrit
jralonso