VBA excel Suppression ligne sous condition

VBA excel Suppression ligne sous condition - VB/VBA/VBS - Programmation

Marsh Posté le 07-05-2014 à 11:13:57    

Bonjour à tous,
tout nouveau dans le VBA, je commence a réaliser quelques macro qui me facilitent la vie dans mon travail.
J'apprend beaucoup de chose en lisant les divers forums et c'est grâce a vous que j'avance dans mes projets.
 
Aujourd'hui je suis coincé sur un problème et ne trouve pas de réponse a ma question.
 
Je vous explique mon problème:
J'ai un fichier excel avec une centaine de feuilles.
Chaque feuille, se ressemble mais en fonction de la mise en page et des informations, les textes qui me servent de repères ne sont jamais disposés au meme emplacement.
Dans chaque feuille de ce fichier je souhaites supprimer toutes les lignes avant la ligne ou je trouve le texte suivant "CONSIGNES PARTICULIERES" et également supprimer toutes les lignes a partir de la ligne ou je trouve le texte "CODAGES".
 
J'espère avoir été assez clair dans mes explications.
 
Par avance merci de votre aide

Reply

Marsh Posté le 07-05-2014 à 11:13:57   

Reply

Marsh Posté le 07-05-2014 à 13:59:45    

Hello !
 
Une petite idée de ce à quoi ça pourrait ressembler :
 

Code :
  1. Sub SupprLig()
  2. Dim lig1, lig2, derlig, lig As Integer
  3. 'On supprime les lignes depuis la celle où on trouve "CONSIGNES PARTICULIERES" jusqu'à la première
  4. lig1 = Cells.Find("CONSIGNES PARTICULIERES", lookat:=xlWhole).Row
  5. For lig = lig1 To 1 Step -1
  6.     Rows(lig).Delete
  7. Next lig
  8. 'On supprime les lignes depuis la dernière jusqu'à celle où on trouve "CODAGES"
  9. lig2 = Cells.Find("CODAGES", lookat:=xlWhole).Row
  10. derlig = Range("A" & Range("A:A" ).Rows.Count).End(xlUp).Row
  11. For lig = derlig To lig2 Step -1
  12.     Rows(lig).Delete
  13.     derlig = Range("A" & Range("A:A" ).Rows.Count).End(xlUp).Row
  14. Next lig
  15. End Sub


 
Ce code nécessite qu'il n'y ai qu'une seule cellule marquée "CONSIGNES PARTICULIERES", et une seule marquée "CODAGES".
De plus, avec la définition de "derlig", on est à la ligne de la première cellule non vide de la colonne A en partant du bas, donc vaut mieux éviter d'avoir des trous.
Je n'ai pas non plus indiqué les noms de feuille, mais l'idée est là, je te laisse adapter ça.


---------------
Mon topal ACH/VDS
Reply

Marsh Posté le 07-05-2014 à 16:02:37    

Hello Laebruhtra,
 
Merci beaucoup pour ton code, cela fonctionne très bien.
Je l'ai adapté pour qu'il bouche sur chacune des feuilles de mon fichier.
 
Il me reste juste une question:
La ligne ou est écrit CONSIGNES PARTICULIERES est également supprimée.
Je souhaite que celle ci ne le soit pas.  
Que faut-il que je modifie?
 
Par avance merci

Reply

Marsh Posté le 14-05-2014 à 13:19:52    

Non testé, mais changer ce morceau de code :

Code :
  1. 8.For lig = lig1 To 1 Step -1


En ce morceau de code :

Code :
  1. 8.For lig = lig1 - 1 To 1 Step -1


devrai faire le taf
 
[EDIT] Après test, ça fonctionne.
 
Au plaisir.


Message édité par Laebruhtra le 14-05-2014 à 13:22:17

---------------
Mon topal ACH/VDS
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed