Tom's Guide > Forum > Logiciels > Macro Excel pour supprimer des lignes

Macro Excel pour supprimer des lignes

Forum Logiciels : Macro Excel pour supprimer des lignes

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour tout le monde !!

Je pense que la macro n'est pas compliquée mais je ne connais pas du tout la VBA et je n'ai rien trouvé sur le web pour m'aider.

J'ai en fait une liste de clients en colonne A et j'aimerais qu'avant d'éditer le ducoment, je puisse me servir d'une macro pour virer toute les lignes où un certain champs n'est pas défini.

Exemple sur la capture suivante:
http://img354.imageshack.us/img354/9673/pbexcelpl3.png
http://img354.imageshack.us/img354/9673/pbexcelpl3.2cf90b4339.jpg

J'aimerais par exemple que si le Nombre de colis de Client 3 n'est pas défini, la ligne soit supprimée.

J'espère que j'ai été assez clair.
Je compte sur vous les gens s'il vous plait !!

Merci d'avance :)

------------------------------ "Therefore the Lord God banished Adam and Eve from the Garden of Eden and placed a flaming sword to protect the Tree of Life."
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut, Xibalba

Essaie ceci:

Code :
  1. Sub SupprimerLignes()
  2. Const LigneDebut = 1 ' entre 1 et 65536 pour Excel 2003
  3. Const LigneFin = 20 ' entre 1 et 65536 pour Excel 2003
  4. Const ColonneClient = 1 ' entre 1 et 255 pour Excel 2003
  5. Const ColonneNbColis = 3 ' entre 1 et 255 pour Excel 2003
  6.     For i = LigneFin To LigneDebut Step -1
  7.         If Cells(i, ColonneClient) = "Client 3" And Cells(i, ColonneNbColis) = "" Then
  8.             Rows(i & ":" & i).Delete Shift:=xlUp
  9.         End If
  10.     Next i
  11. End Sub


A toi d'adapter les constantes en début de code avec ton fichier.

Bonne continuation

Répondre à Gillou_gre

Maintenant j'aimerais supprimer 3 lignes au dessus et 3 lignes en dessous d'une certaine ligne ainsi que la ligne concernée. par exemple si ma ligne 4 répond à mon critère, Excel supprime la ligne 1 2 3 4 5 6 7

J'ai donc écris ceci mais ça ne fonctionne pas :

For i = LigneFin To LigneDebut Step -1
If Cells(i, ColonneSsTotal) = "SOUS TOTAL" And Cells(i, ColonneValSsTotal) = "0" Then
Rows(i + 3 & ":" & i + 3).Delete Shift:=xlUp
Rows(i + 2 & ":" & i + 2).Delete Shift:=xlUp
Rows(i + 1 & ":" & i + 1).Delete Shift:=xlUp
Rows(i - 3 & ":" & i - 3).Delete Shift:=xlUp
Rows(i - 2 & ":" & i - 2).Delete Shift:=xlUp
Rows(i - 1 & ":" & i - 1).Delete Shift:=xlUp
Rows(i & ":" & i).Delete Shift:=xlUp
End If
Next i


J'avoue que je ne connais pas le sens de (i - 1 & ":" & i - 1).
Je suppose que le shift n'est qu'un décalage de la ligne vers le haut (pour le "Up" ).
Comment faire s'il vous plait ?

Merci d'avance !


Message édité par Xibalba le 08-07-2008 à 14:54:34
------------------------------ "Therefore the Lord God banished Adam and Eve from the Garden of Eden and placed a flaming sword to protect the Tree of Life."
Répondre à Xibalba

Up

------------------------------ "Therefore the Lord God banished Adam and Eve from the Garden of Eden and placed a flaming sword to protect the Tree of Life."
Répondre à Xibalba

Salut, Xibalba

Désolé pour le retard, j'étais en congés.
Quand tu supprimes une ligne dans Excel, il ne faut pas oublier que cela décale les lignes qui sont en dessous. Il faut donc commencer par supprimer la ligne la plus "basse" et continuer en remontant jusqu'à la dernière ligne que l'on veut supprimer.
Par ailleurs, en supprimant des lignes, ta boucle va faire des tests inutiles.
Voici ce que je te propose:

Code :
  1. i = LigneFin
  2. While i <= LigneDebut
  3.         If Cells(i, ColonneSsTotal) = "SOUS TOTAL" And Cells(i, ColonneValSsTotal) = "0" Then
  4.             For j = 1 To 7
  5.                 Rows(i - 3 & ":" & i - 3).Delete Shift:=xlUp
  6.             Next j
  7.             i = i - 7
  8.         End If
  9.         i = i - 1
  10. Wend


C'est mieux ?


Message édité par Gillou_gre le 30-07-2008 à 12:47:16
Répondre à Gillou_gre
Tom's Guide > Forum > Logiciels > Macro Excel pour supprimer des lignes
Aller à :

Il y a 297 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens