simplifier un petit programme

  • Initiateur de la discussion Initiateur de la discussion michal51
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

michal51

XLDnaute Junior
Bonjour forum,
je me suis fait un petit programme qui consiste à supprimer les lignes avec une certaine valeur à l'intèrieur. J'aurais voulus savoir comment est-ce que je peux le faire plus rapidement puisque excel prend un certain temps avec celui-là et j'en ai plusieurs à faire dans cette meme feuille.
Voici la bête:

Private Sub CommandButton1_Click()
Dim a As Integer
For a = 400 To 2 Step -1
If Range("U" & a) = "0" Then GoTo suite1
Range("U" & a).EntireRow.Delete
suite1:
Next a
End Sub

Dans le même temps, comment est-il possible de marquer cette formule mais pour deux colonne (U et J)

Voilà merci
 
Re : simplifier un petit programme

Bonjour à tous,

Essaye ça (pas vérifié!) j'ai également supprimé l'étiquette qui ne se justifie pas à mon avis et qui peut-être ralentit un peu la procédure

Private Sub CommandButton1_Click()
Dim a As Integer
For a = 400 To 2 Step -1
If Range("U" & a) = "0" and Range("J" & a)= "0" Then
Row(a).delete
Next a
End Sub
 
Re : simplifier un petit programme

Bonjour Michal

si j'ai bien compris :

Code:
Dim a As Integer
For a = Range("U65536").End(xlUp).Row To 2 Step -1
If Range("U" & a) <> "0" Then Rows(a).Delete
Next a

boucle commence par la dernière cellule non vide de la colonne U, pour ta 2ème question, tu veux supprimer une ligne, si au niveau des colonnes U et J, c'est different de "0" ?

@+
 
Dernière édition:
Re : simplifier un petit programme

Oui je pense que ta formule est très bien pierrot, c'est bien plus rapide. Pour la deuxième requête, en fait il s'agirait de supprimer les ligne <> 0 en U et J, mais également de supprimer les ligne "soldées" en colonne B.

Voilà, en tout cas merci encore pour cette formule.

A+
 
Re : simplifier un petit programme

Bonjour,
Un exemple
Code:
Sub CommandButton1_Click()
    Dim a As Integer
    For a = 400 To 2 Step -1
        If Range("U" & a).Value <> "0" Then Range("V" & a).Value = "Sup"
    Next a
    Range("V1").Value = "A sup"
    With ActiveSheet
        With Range("U1").CurrentRegion
            .AutoFilter field:=2, Criteria1:="Sup"
            .Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
            .AutoFilter
        End With
    End With
End Sub
 
Re : simplifier un petit programme

Re, bonjour Joss, Eric


pour rajouter la colonne J :

Code:
If Range("U" & a) <> "0" Or Range("J" & a) <> "0"  Then Rows(a).Delete

si soit la ligne x de la colonne U ou la ligne x de la colonne J est differente de "0" ca supprime la ligne, si tu veux que les 2 colonnes remplissent la condition, tu changes le "or" en "and", tu peux également rajouter un test sur la colonne B de la même façon.

bonne journée
@+
 
Re : simplifier un petit programme

Merci à vous çà fonctionne à merveille. Une dernière question. A vrai j'en ai pas besoin dans ce que je fait mais je m'interroge: est-il possible de compter les lignes supprimer? Et comment?


Merci
 
Re : simplifier un petit programme

Re

pour le nombre de lignes supprimées, tu rajoutes un compteur, dans l'exemple ci dessous "i" :

Code:
Dim a As Integer, i As Integer
For a = Range("U65536").End(xlUp).Row To 2 Step -1
If Range("U" & a) <> "0" Then Rows(a).Delete: i = i + 1
Next a
MsgBox "Nb de lignes suppimées : " & i
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour