suppression de lignes impossible...

  • Initiateur de la discussion Initiateur de la discussion riklho
  • Date de début Date de début

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 !

R

riklho

Guest
Bonjour,

J'ai un fichier pour mon travail que j'ai créé et qui me permet de créer des fiches préformatées...
J'ai un problème car j'ai essayé toutes les macros possibles et je n'arrive pas sur le fichier qui prendra le nom du pays à supprimer les lignes vides (pourtant d'habitude j'y arrive....)
Grosso modo il faut que dans mon fichier d'arrivée qui prendra un nom de pays les cellules entre A10 et A 26 soit vérifiée et que pour les vides la ligne se supprime automatiquement.
Merci pour votre aide, c'est vital pour moi.

Bon et bien malheureusement mon ficher même zippé est trop lourd (128ko) donc ce que j'ai juste à dire c'est que je dois vérifier entre les cellules A10 et A26 et pour les vides il me faudra supprimer la ligne correspondate !

Merci beaucoup !

Erika
 
Re : suppression de lignes impossible...

Bonsoir,

En terme de code je verrais bien quelque chose comme cela :

Dim cellule as range
Dim Vide as boolean

Vide=True
for each cellule in range("A" & x & ":G" & x)
if cellule.value<>"" then
Vide=true
exit for
endif
next x
if vide then rows(x).entirerow.delete

(Sous reserve des fautes d'orthographe)
 
Re : suppression de lignes impossible...

Bonsoir riklho, lapix,

Une solution (parmi d'autres) qui pourrait peut-être répondre à ton attente...
Code:
[SIZE=2]    ActiveSheet.Range("A10:A26").SpecialCells(xlCellTypeBlanks).EntireRow.Delete[/SIZE]
Cordialement,

Nb : lapix, désolé, je vais encore me faire passer pour le ronchon de service, mais dans un forum d'entraide et d'apprentissage, je pense qu'il est bienvenu de tester un minimum les codes avant de poster, parce que là...
 
Re : suppression de lignes impossible...

Bonsoir à tous,

Si tous les chemins mènent à Rome, personnellement, je l'aurais vu ainsi :

'---- code à recopier :
Sub EffaceLigneVide()
Dim MaCellule As Range
Dim MaPlage As Range
Set MaPlage = Range(Cells(1, 1), Cells(26, 1))

For Each MaCellule In MaPlage
If IsEmpty(MaCellule) Then
MaCellule.EntireRow.Delete
Else: End If
Next MaCellule

Set MaPlage = Nothing

End Sub
'---Fin de code

Explications (il s'agit en fait d'une boucle):

Ligne 1 : déclaration de la cellule active
Ligne 2 : déclaration de la plage ciblée
Ligne 3 : Affection de la plage A1:A26 à la variable MaPlage

Ligne 4 : "Pour chaque cellule dans ma plage ciblée" --Début d'une boucle
LIgne 5 : "Si ma cellule cible est vide alors"
Ligne 6 : "Supprime la rangée de ma cellule cible"
Ligne 7 : "Sinon, ne fais rien"
Ligne 8 : "Passe à la cellule cible suivante --Fin dela boucle

Ligne 9 : LIbération de la mémoire utilisée pour la plage cible



A noter, que si cette boucle est fonctionnelle, on doit pouvoir l'optimiser (certaines cellules sont vérifiées 2 fois il me semble)
Y'a forcément mieux.

Bonne soirée
Kotov
 
Re : suppression de lignes impossible...

Oups,
Attention RIKLHO,
dans ma macro, j'ai déclaré comme plage cible la plage A1:A26
(Range (Cells(1,1),Cells(26,1))

Pour la plage A10:A26, il faut saisir (Range (Cells(10,1),Cells(26,1))
pour info les références de la saisie se lisent ainsi : Cells(Ligne, Colonne)

Bonne nuit à tous
Kotov
 
Re : suppression de lignes impossible...

Tout d'abord merci à vous tous pour ces super réponses.. seulement ça ne fonctionne toujours pas.... c peut être une histoire de format ou je ne sais pas trop.
Je me connecte ce soir pour vous envoyer un lien sur mon ftp si qq1 est dispo pour m'aider! !!
Merci

ERIKA
 
Re : suppression de lignes impossible...

Bizarre Riklho,

Je ne crois pas que ce soit un problème de format.
Expliques nous ce que tu fais avec le code ci-dessus, comment sont nommées tes feuilles, tes macros etc..
Mieux encore, si ton fichier n'est pas trop volumineux, envoies le

En ce qui me concerne, la macro fonctionne sans problème particulier.

A+
Kotov
 
Re : suppression de lignes impossible...

Salut mDF,

Tu es peut etre ronchon (mais je ne te connais pas assez pour en juger) mais il est vrai que là j'ai fait tres fort.

Tu as parfaitement raison, quand je me relis, Aie ! Ouille !

Je me tapes sur les doigts tiens ! Ca merite au moins ca.
Promis je le referais plus
 
Re : suppression de lignes impossible...

Bonsoir le fil, le Forum,

Tout d'abord, bravo lapix pour ne pas avoir pris ombrage de ma remarque et pour ton humour 🙂

En ce qui me concerne, je précise également que l'unique ligne de code que j'ai mise fonctionne aussi sans problème. Une petite différence toutefois avec le code de notre ami Kotov... si présence de deux lignes vides contigües, mon code supprime bien les 2 lignes.

En tout cas, bravo Kotov car contrairement à moi, toi au moins tu as fait l'effort de commenter ton code. Si je puis me permettre un petit conseil, si tu veux absolument utiliser une boucle pour supprimer des lignes ainsi, tu obtiendrais de meilleurs résultats en procédant à l'envers (du bas vers le haut du tableau). En effet, contrairement à ce que tu as l'air de penser, dans ton code les cellules ne sont pas vérifiées 2 fois, bien au contraire : chaque ligne supprimée décalant le tableau d'une ligne vers le haut, ta boucle ne peut tester l'élément qui suit immédiatement. D'où son impossibilité de supprimer deux lignes vides consécutives...
Par ailleurs, pour info : dans "Else: End If", ton "Else:" ne sert à rien, tu peux l'enlever.

Et là où nous sommes tout à fait d'accord, c'est que sans un exemple épuré fourni par l'ami riklho, il nous sera impossible de savoir quel est le problème exact rencontré car le "ça ne fonctionne toujours pas" n'est pas vraiment une piste facile à explorer...😉

Cordialement,
 
Re : suppression de lignes impossible...

Merci MDF pour ton conseil,
Effectivement c'est plus logique de partir du bas.
En saisissant ma réponse, il me semblait bien qu'il y avait mieux à faire. J'ai essayé une fois ma macro, elle fonctionnait mais j'avais quand même "un caillou dans ma chaussure" : ça empêche pas de marcher mais c'est gênant !

J'essaie dans la mesure du possible de rendre un peu de de que j'ai appris, notamment par le biais de ce super forum : aussi, même si j'ai peu de temps de libre, j'essaie d'être utile à ceux qui débutent. Commenter le code me parait important, notamment en "langage de tous les jours"

Quand à Else : End if, j'avais un temps abandonné le Else, mais j'y reviens par habitude :
En ce moment, je travaille sur un fichier de type arbre décisionnel avec de multiples embranchements. J'ai à côté de moi, un cahier de brouillon sur lequel je note tous mes IF/ELSE/END IF & SELECT CASE/(CASE/CASE ELSE)/END SELECT. Quand ça bug, j'additionne mes colonnes et je vérifie ainsi que j'ai autant d'IF, que de ELSE et END IF.
Et pour expliquer à un débutant, je préfère maintenir la structure classique.

En tout cas, MDF, merci pour ton intervention.

Quand à Riklho, il (elle ?) ne s'est toujours pas manifesté(e).
Si quelqu'un peut prendre "la permanence" pour ce soir, je dois continuer à bosser sur mon projet.

Bonne nuit à tous
Kotov
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
545
Retour