éliminer lignes excel quand cellules avec contenu x [Résolu]

- - Dernière réponse :  Fred - 3 oct. 2013 à 10:26
Bonjour,
Je suis débutant dans l'utilisation de macro pour excel.
J'ai 2.3 problèmes à vous exposer :
Dans mon fichier excel qui va de j27 --> n27 avec longueur variante de 27 à xxx (où x = maximum 100) j'aimerais tout d'abord supprimer (seulement dans cette région j à n de 27 à xxx) toutes les lignes dans lesquels la cellule n = "Ouverture".
Merci beaucup
Afficher la suite 

2 réponses

Messages postés
13
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
7 octobre 2013
1
0
Merci
Voici quelques indications pour trouver les instructions plus facilement. Ensuite l'aide d'excel complétera mes explications...
1)
Pour effacer le contenu d'un ensemble de cellule en ligne :
Worksheets(nomfeuil).Rows(i).ClearContents

nomfeuil = nom de la feuille, stocké dans la variable nomfeuil
i = index de la ligne à effacer (on peut mettre aussi un truc du style "3:5" = ligne de 3 à 5.)
2)
Pour sélectionner un ensemble de cellule :
Worksheets(nom_feuille).Range(cellule_depart & ":IV" & numéro_ligne_fin)

cellule_depart="C3", par exemple
numéro_ligne_fin=6, par exemple.
3)
Pour supprimer un ensemble de cellules ou ligne de cellules :
' Suppression des lignes en trop
Rows("2:" & ligne_fin).Delete Shift:=xlUp

Si on travaille sur des colonnes l'instruction est "columns...", pour des cellules "cells..."
L'option shift, indique la direction de suppression, donc on doit remonter les cellules en dessous, ou les faire venir les cellules placées à droite ou à gauche.

Sinon pour ton commentaire "toutes les lignes dans lesquels la cellule n = "Ouverture". " devrait donner un truc du genre

If Range("A5").value="Ouverture" then
...
endif

ou

If Cells(1,5).value="Ouverture" then
...
endif

Voilà j'espère que çà t'aidera. Mais on ne peut pas faire la macro à ta place sinon !
Commenter la réponse de rackamlerouge
Messages postés
27277
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 janvier 2020
321
0
Merci
Bonsoir,

Déjà, pensez à utiliser la coloration syntaxique lorsque vous postez du code (valable pour vous deux !! )

Ensuite, pour une demande aussi 'simple' il suffit bien souvent d'utiliser l'enregistreur de macro pour découvrir comment faire.

Et puis comme le souligne rackamlerouge, il existe une Aide sous Excel qui contient bon nombre de réponses.


Enfin bon... pour cette fois, je vous donne la solution toute faite..
Sub suppr()
'on boucle depuis le bas vers le haut
For l = 100 To 27 Step -1
    If Range("n" & l).Value = "Ouverture" Then
        Range("J" & l & ":N" & l).Select
        Selection.Delete Shift:=xlUp
    End If
Next
End Sub




Cordialement,
Jordane
Hello,
Merci pour ton aide, en effet j'ai utilisé l'enregistreur pour tout le reste, mais supprimer des lignes comme ça je ne sais même pas comment le faire en "manuel"... Bref, je suis une pomme dans le domaine et j'essai juste de programmer un minimum pour gagner du temps au travail...
J'ai essayé ton code il a fonctionné une fois, puis il ne fonctionne plus du tout, pourtant les macros sont activés et je n'ai rien changé (enfin j'ai revérifié et recopier ton code 50 fois), mais rien à y faire... Peut-être une idée ? ;-). En tout cas merci
Désolé c'est tout bon il y avait un soucis dans le nom "ouverture", il y a des espaces enreegistrés... C'est tout bon ça fonctionne ! MERCI BEAUCOUP
Commenter la réponse de jordane45