Macro effacer lignes dans feuille excel

Résolu
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010 - 4 mars 2010 à 19:06
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010 - 5 mars 2010 à 21:20
Bonjour
Je cherche une macro excel pour effacer des lignes dans une feuille.
Il faudrait effacer toutes les lignes du début jusqu'à la ligne ou il y a un mot "bonjour" et effacer aussi cette ligne.
Merci de me donner une réponse

Renato

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 mars 2010 à 11:02
Félicitations ...
N'oublie pas de cliquer sur réponse acceptée (sur message avec solution)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
4 mars 2010 à 19:39
Bonjour,

Demande à Excel d'enregistrer une macro et regarde le code généré.

Mon site
0
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010
4 mars 2010 à 21:08
Bonsoir
La ligne ou se trouve "Bonjour" est aléatoire dans la feuille, faudrait une recherche du mot et supprimer tout ce qui est avant.
Renato
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
4 mars 2010 à 21:28
Bonjour,
Bien.
Commence donc par le commencement, à savoir déterminer la ligne contenant ce mot (nous verrons le reste seulement ensuite).
Tu as pour ce faire à utiliser la méthode Find. Elle est exposée dans ton aide Excel et y est assortie d'un exemple clair, qui te permettra d'extraire l'adresse de la ligne concernée.
Reviens après avoir passé ce cap et nous verrons alors ce qyu'il convient de faire pour supprimer tout jusqu'à ladite ligne incluse


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010
5 mars 2010 à 09:48
Bonjour

J'ai trouvé cette macro,ça marche et ça renvoie en D1 le nombre de ligne à effacer

Sub Macro1()

'Recherche de "bonjour"
Cells.Find(What:="bonjour", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

'Position en D1 du nb de lignes
Ligne = ActiveCell.Row
Range("D1").Value = Ligne

End Sub

Et maintenant.......
Peut-être que je dois chercher comment les effacer ?
Avec une boucle ou bien de la cellule A1 a la cellule A+15,(ce serai bien qu'en D1,j'ai la position cellule (A15), mais comment ?
J'attend que vous me guidiez
A bientôt
Renato
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 mars 2010 à 10:28
Tu as passé la première étape par toi-même et je t'en félicite (c'est beaucoup mieux, d'apprendre à pêcher)

Deuxième étape ? ===>> un exemple (teste-le) :
Range(Rows(1), Rows(11)).Delete

t'efface les lignes 1 à 11 incluses
Par quoi remplacer 11 ? ===>> par ta variable Ligne
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010
5 mars 2010 à 10:44
Super !!!!!!!!!!!!

Je suis content d'avoir trouvé (presque...) tout seul.
C'est très bien de guider plutôt que de pondre tout fait.
Je continue ma macro et peut-être à bientôt si je cale.

Grand merci !!!!!!!

Bonne continuation

Renato
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 mars 2010 à 21:00
Bien (j'ai du temps pour toi et tu le mérites) :
1) que se passerait-il si aucune cellule ne contenait le mot recherché ("bonjour") ? ===>> plantage assuré
2) pourquoi partir de ActiveCell (qui t'oblige à la sélectionner d'abord) ?
3) pourquoi aller chercher aussi dans les formules ? (c'est là inutile, puisque seules les valeurs t'intéressent
4) pourquoi sélectionner la cellule trouvée pour en déterminer le n° de ligne ? 'Ce n'est pas "léger" et c'est donc à éviter)
regarde ce que donne l'application de ces principes, en allant tout droit au but :
 Dim toto As Range
 Set toto = Cells.Find(What:="bonjour", After:=Range("A1"), LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
 If Not toto Is Nothing Then ' <<<=== c'est là qu'on vérifie que le mot existe dans une des cellules (et on ne fait rien dans le cas contraire)
   Range(Rows(1), Rows(toto.Row)).Delete " <<<<<==== on va direcxtement au but (sans passer par une variable tremplin)
 End If


Anayse bien ce code. Je suis certain que tu en comprendras tout et de ce que tu garderas en mémoire que toutes les sélections, etc... ne servent qu'à alourdir, alors qu'on peut toujours "pointer" directement
Tu as fait un début qui m'a donné envie de te guider. Continue maintenant en gardant présentes à l'esprit ces recommandations (toujours).
Amitiés.
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
renato64 Messages postés 5 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 5 mars 2010
5 mars 2010 à 21:20
Bonsoir
Bien reçu le code
C'est du complet bien fait.......
En fait j'aime bien les choses logiques, précises et efficaces.
J'ai laissé tombé quick-Basic pour excel et je découvre de grosses possibilités, mais avec un peu de peine pour ce langage.
Je prend note de raisonner comme tu me le conseille et j'espère progresser (avec le forum...)
Merci pour les conseils

Renato
0
Rejoignez-nous