Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Pour supprimer des lignes vides, je fais comme ci-après
Code:
Sheets("Affich").Select
With Range("D7:D" & [D65536].End(xlUp).Row)
.Replace What:="", Replacement:="", LookAt:=xlWhole
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
J’ai fait plusieurs essais, cela fonctionne bien.
Par contre quand j’exécute cette macro dans mon fichier réel, j’ai un bug.
Le fichier réel contient une Mise en Forme Conditionnelle sur la colonne C.
Peut être cela vient-il du fait que j’ai le même code dans ma macro, à ceci près qu’elle me supprime correctement les lignes pour lesquelles dans la colonne B il y a un 0.
Paritec a raison, un fichier c’est mieux, je vous en joint un.
Dans ce fichier, 3 onglets ;
Le premier est le listing du personnel, avec en colonne A la clé qui sert pour les recherches.
Le deuxième sert à recevoir les données qui sont au préalable émises par un Crystal Report. Sur cet onglet les colonnes L à T sont habituellement masquées.
Le troisième onglet sert à la mise en forme pour impression.
Sur l’onglet « Releve » j’ai 3 boutons le premier sert à « spliter » les données de la colonne F (des données horaires dont le format est inexploitable) auxquelles j’ajoute celles de la colonne J.
Le deuxième bouton sert à la mise en forme.
Le troisième bouton efface toutes les données y compris celles chargées et celles reportées sur le troisième onglet.
Les macros ont été faites au fur et à mesure des besoins, donc pas forcément bien structurées et encore moins bien codées, c’est souvent du code provenant de l’enregistreur.
Alors dites moi si vous pouvez m’aider pour la dernière difficulté rencontrée : éliminer les lignes vides.
Je viens d'essayer le code de Gorfael, j'ai un bug:
Code:
'Destruction des lignes vides
With Sheets("Affich").Range([D7], Cells(Rows.Count, "D").End(xlUp))
[COLOR="Red"].SpecialCells(xlCellTypeBlanks).EntireRow.Delete[/COLOR]
End With
le debogueur s'arrête à la ligne rouge.
Je continue à chercher et bien sur votre aide sera la bienvenue.
Salut ntan-évindi et le forum
Je viens d'essayer juste
Code:
'Destruction des lignes vides
With Sheets("Affich").Range([D7], Cells(Rows.Count, "D").End(xlUp))
[COLOR=Red].SpecialCells(xlCellTypeBlanks).EntireRow.Delete[/COLOR]
End With
et chez moi, ça m'efface bien les lignes vides en D à partir de la ligne 7. Quelle erreur est affichée ?
A+
J'ai effectivement un bug - erreur 1004 - pas de cellules correspondantes.
Si j'exécute uniquement ce code, cela fonctionne.
Par contre quand j'exécute celui ci-après, c'est là que ça ne fonctionne plus.
Code:
'Destruction des lignes vides
Sheets("Affich").Select
With Range("D7:D" & [D65536].End(xlUp).Row)
.Replace What:="", Replacement:="", LookAt:=xlWhole
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
'Destruction Des lignes comportant un Zero en colonne 2
Sheets("Affich").Select
With Range("B7:B" & [B65536].End(xlUp).Row)
.Replace What:="0", Replacement:="", LookAt:=xlWhole
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
J'ai changé mes formules dans les cellules pour afficher un 0 au lieu de "" et là cela fonctionne, mais par contre j'ai 7 lignes en bas de mon tableau dont le format (quadrillage) ne s'efface plus.
C'est pas facile, je sais, c'est le dur métier d lr'apprentissage.
Si un lambeau de code fonctionne seul, mais pas dans la macro complète, l'erreur ne vient pas du lambeau CQFD
Edit : Je viens de voir qu'il y avait un fichier en pièce jointe
Code:
'Destruction Des lignes comportant un Zero en colonne 2
Sheets("Affich").Select
With Range("B7:B" & [B65536].End(xlUp).Row)
.Replace What:="0", Replacement:="", LookAt:=xlWhole
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Peux-tu m'expliquer ce que ton code est supposé faire, pour toi ? Ce que je lis littéralement :
- Sélectionner l'onglet "Affich"
- avec pour préfixe plage B7 à dernière non vide de B - remplacer les valeurs 0 (cellule complète) par ""
- effacer les lignes ayant des cellules vides
- Fin du préfixe
Je ne comprends pas du tout la ligne en gras
mais pas non plus le sens de ce code
Donner un fichier, c'est bien... mais sans pouvoir savoir ce qu'il y a comme données et ce qu'on doit obtenir en final, ça réduit considérablement son utilité.
J'ai 3 modules (1 suffit) et des macros qui s'appliquent certainement à un onglet particulier (mais lequel ?), et que je ne peux tester, parce que je n'ai aucune donnée et pas d'idée du résultat attendu.
de la ligne 7 à 289, ce n'est pas utile, mais 3 ou 4 de données (créées pour qu'elles soient significatives, de sortes qu'on puisse réellement tester les macros, ne serait pas un luxe.
A+
Bonsoir à toutes et à tous,
Bonsoir Gorfael et merci de tes réponses,
Plutôt que de longues explications, qui peuvent me paraitre claires mais confuses à ceux qui les lisent, je joins un nouveau fichier avec des explications, en espérant que cela permettra votre compréhension.
Et vous permettra de voir pourquoi la macro affich ne fonctionne pas en totalité, à partir de la destruction des lignes
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD