Supprimer lignes vides dans une zone
Fermé
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
-
22 mars 2013 à 22:03
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 - 23 mars 2013 à 13:14
touroul Messages postés 475 Date d'inscription mardi 5 octobre 2010 Statut Membre Dernière intervention 11 novembre 2024 - 23 mars 2013 à 13:14
A voir également:
- Supprimer lignes vides dans une zone
- Zone telechargement - Accueil - Outils
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Aller à la ligne dans une cellule excel - Guide
- Supprimer pub youtube - Accueil - Streaming
10 réponses
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
23 mars 2013 à 00:55
23 mars 2013 à 00:55
Bonjour
Adaptation de la macro à tes lignes 45 à 55
Sub lignesvides()
Application.ScreenUpdating = False
For r = 55 To 45 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
Cdlmnt
Adaptation de la macro à tes lignes 45 à 55
Sub lignesvides()
Application.ScreenUpdating = False
For r = 55 To 45 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
Cdlmnt
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
16
23 mars 2013 à 08:00
23 mars 2013 à 08:00
Merci Via pour ton travail.
Mais malheureusement je ne parviens pas à la faire fonctionner :
J'ai essayé en copiant ce code :
- dans la feuille concernée
- dans ThisWorkBook
- dans Module1
J'ai fermé puis réouvert le fichier.
Faut-il lancer la macro, ou les lignes s'effacent-elles seules ?
Voici une copie d'écran :
https://www.cjoint.com/?0Cxh7LvBc38
Merci d'avance pour le suivi (je veux comprendre ce que je fais mal !)
Touroul
Mais malheureusement je ne parviens pas à la faire fonctionner :
J'ai essayé en copiant ce code :
- dans la feuille concernée
- dans ThisWorkBook
- dans Module1
J'ai fermé puis réouvert le fichier.
Faut-il lancer la macro, ou les lignes s'effacent-elles seules ?
Voici une copie d'écran :
https://www.cjoint.com/?0Cxh7LvBc38
Merci d'avance pour le suivi (je veux comprendre ce que je fais mal !)
Touroul
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
16
23 mars 2013 à 08:18
23 mars 2013 à 08:18
En réalité la macro semble fonctionner, mais avec 2 bémols :
1- Je dois la lancer manuellement, et cela même si je mets Application.ScreenUpdating sur True
2- Seules les lignes vraiment vides se suppriment, mais si elles n'affichent rien du fait de :
=SI(F17="";"";"Mon texte 1")
... la ligne n'est pas supprimée.
Tout cela est imparfait mais plutôt bien parti !
Please help !
1- Je dois la lancer manuellement, et cela même si je mets Application.ScreenUpdating sur True
2- Seules les lignes vraiment vides se suppriment, mais si elles n'affichent rien du fait de :
=SI(F17="";"";"Mon texte 1")
... la ligne n'est pas supprimée.
Tout cela est imparfait mais plutôt bien parti !
Please help !
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
Modifié par ccm81 le 23/03/2013 à 09:16
Modifié par ccm81 le 23/03/2013 à 09:16
Bonjour à tous les deux
quelque chose comme ça?
bonne journée
quelque chose comme ça?
Const nF = "Feuil1" Const lideb = 9 Const lifin = 15 Dim li As Long, nbblanc As Long, cofin As Long With Sheets(nF) For li = lifin To lideb Step -1 cofin = .Cells(li, Columns.Count).End(xlToLeft).Column nbblanc = Application.WorksheetFunction.CountBlank(.Range(Cells(li, 1), Cells(li, cofin))) If nbblanc = cofin Then .Rows(li).EntireRow.Delete Next li End With
bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
16
23 mars 2013 à 09:25
23 mars 2013 à 09:25
Salut CCM81
J'essaie d'appliquer à mon cas ...
Le : Const nF = "Feuil1" me gêne un peu (un nouvel onglet est créé à chaque fois, il est nommé par la date du jour)
Dois-je mettre ceci dans un Private Worksheet ?
Dois-je mettre ceci dans le code de ma feuille, dans ThisWorkBook, dans Module1 ?
J'ai corrigé :
Const lideb = 9 corrigé à 45
Const lifin = 15 corrigé à 55
Merci de ta réponse et pour ton aide !
J'essaie d'appliquer à mon cas ...
Le : Const nF = "Feuil1" me gêne un peu (un nouvel onglet est créé à chaque fois, il est nommé par la date du jour)
Dois-je mettre ceci dans un Private Worksheet ?
Dois-je mettre ceci dans le code de ma feuille, dans ThisWorkBook, dans Module1 ?
J'ai corrigé :
Const lideb = 9 corrigé à 45
Const lifin = 15 corrigé à 55
Merci de ta réponse et pour ton aide !
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
Modifié par ccm81 le 23/03/2013 à 09:47
Modifié par ccm81 le 23/03/2013 à 09:47
Le : Const nF = "Feuil1" me gêne un peu (un nouvel onglet est créé à chaque fois, il est nommé par la date du jour)
tu en fais une variable de type worksheet et tu lui affectes la feuille à traiter, par exemple comme ça
personnellement, je mettrais ça dans un module général
tu en fais une variable de type worksheet et tu lui affectes la feuille à traiter, par exemple comme ça
Const lideb = 9 Const lifin = 15 Dim li As Long, nbblanc As Long, cofin As Long Dim F As Worksheet Set F = ActiveSheet With F For li = lifin To lideb Step -1 cofin = .Cells(li, Columns.Count).End(xlToLeft).Column nbblanc = Application.WorksheetFunction.CountBlank(.Range(Cells(li, 1), Cells(li, cofin))) If nbblanc = cofin Then .Rows(li).EntireRow.Delete Next li End With
personnellement, je mettrais ça dans un module général
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
16
23 mars 2013 à 10:04
23 mars 2013 à 10:04
J'ai essayé d'ajouter ceci dans "Module1" sans succès :
Sub Worksheet_Activate()
End Sub
Const lideb = 45
Const lifin = 55
Dim li As Long, nbblanc As Long, cofin As Long
Dim F As Worksheet
Set F = ActiveSheet
With F
For li = lifin To lideb Step -1
cofin = .Cells(li, Columns.Count).End(xlToLeft).Column
nbblanc = Application.WorksheetFunction.CountBlank(.Range(Cells(li, 1), Cells(li, cofin)))
If nbblanc = cofin Then .Rows(li).EntireRow.Delete
Next li
End With
End Sub
Désolé mais mon niveau en VBA frise le zéro.
Pardon de te demander à nouveau un coup de main.
Sub Worksheet_Activate()
End Sub
Const lideb = 45
Const lifin = 55
Dim li As Long, nbblanc As Long, cofin As Long
Dim F As Worksheet
Set F = ActiveSheet
With F
For li = lifin To lideb Step -1
cofin = .Cells(li, Columns.Count).End(xlToLeft).Column
nbblanc = Application.WorksheetFunction.CountBlank(.Range(Cells(li, 1), Cells(li, cofin)))
If nbblanc = cofin Then .Rows(li).EntireRow.Delete
Next li
End With
End Sub
Désolé mais mon niveau en VBA frise le zéro.
Pardon de te demander à nouveau un coup de main.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
23 mars 2013 à 11:21
23 mars 2013 à 11:21
re,
Public Sub FormateCel(Target As Range)
cet événement n'existe pas
Public Sub FormateCel(Target As Range)
cet événement n'existe pas
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 429
23 mars 2013 à 12:38
23 mars 2013 à 12:38
le problème est surtout de savoir quand/comment tu veux utiliser la macro
https://www.cjoint.com/?3CxmI3jM9pI
https://www.cjoint.com/?3CxmI3jM9pI
touroul
Messages postés
475
Date d'inscription
mardi 5 octobre 2010
Statut
Membre
Dernière intervention
11 novembre 2024
16
23 mars 2013 à 13:14
23 mars 2013 à 13:14
OK.
Je vais préciser :
Certaines lignes entre L45 et L55 contiennent des formules type :
A48: =SI(F17="";"";"Mon texte 1") *
Si elles ne s'affichent pas (dans le cas où F17 est vide), il faut supprimer toute la ligne 48 en automatique.
Je me permets de vous envoyer un exemple de mon fichier (en MP car confid.)
Mais je publierai ici la solution avec votre accord sous forme d'un fichier simplifié.
Je sais, mon fichier devient complexe avec le temps, mais c'est mon outil de travail quotidien
Merci pour votre dévouement à mon égard.
Je vais préciser :
Certaines lignes entre L45 et L55 contiennent des formules type :
A48: =SI(F17="";"";"Mon texte 1") *
Si elles ne s'affichent pas (dans le cas où F17 est vide), il faut supprimer toute la ligne 48 en automatique.
Je me permets de vous envoyer un exemple de mon fichier (en MP car confid.)
Mais je publierai ici la solution avec votre accord sous forme d'un fichier simplifié.
Je sais, mon fichier devient complexe avec le temps, mais c'est mon outil de travail quotidien
Merci pour votre dévouement à mon égard.