éliminer lignes excel quand cellules avec contenu x

Résolu
Fred - 2 oct. 2013 à 15:15
 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

2 réponses

rackamlerouge Messages postés 13 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 7 octobre 2013 1
2 oct. 2013 à 17:18
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 !
0
jordane45 Messages postés 36937 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 février 2023 341
Modifié par jordane45 le 3/10/2013 à 02:34
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
0
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
0
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
0
Rejoignez-nous