j'aimerais supprimer Des lignes en fonction de deux valeurs touvées sur une
ligne.
En colonne B la reference du produit Refx01 et en Col E et H des valeurs.
Si E=stock et H=plein alors je supprime toutes les lignes contenant en B la
réference du produit.
J'utilise If Cells(l, "E").Value = "stock" _
And Cells(l, "H").Value = "plein" Then Cells(l, 1).EntireRow.Delete
, cela fonctionne que pour une ligne.
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j <> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i > Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
"Gloops" a écrit dans le message de news: iphjhn$3j0$ pierre a écrit, le 30/04/2011 17:57 :
Bonjour Michel
Tu as parfaitement compris mon besoin et la macro est parfaite. Dès que stock et plein sont détectés ta macro supprime les lignes contenant la référence du produit se trouvant en colonne B (Ce qui soulage le tableau ) et cela fonctionne parfaitement bien. Tellement bien que je voulais l'enrichir avec comme condition 2 au lieu du mot fixe ( plein) une variable de type "commençant par" . et garder une seule ligne au lieu de tout supprimer, la premiere en partant du haut. J'abuse mais c'est tellement puissant avec vous le VBA . Merci à toi ainsi qu'aux autres du forum
Pierre
Bonjour,
Left$(Cells(i, 8), 3) = "ple"
Cells(i, 8) est la huitième cellule de la ligne i, donc la cellule de la colonne H, et plus exactement sa propriété par défaut, Value.
Left$(texte, nb) retourne nb caractères pris au début de texte.
Bonjour,
en laissant la ligne stock plein en place et en prenant comme condition
"ple.." voici ce que ça peut donner
Sub Cherchetsup()
'
Dim Reference As String
Dim Derlig As Long
Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003
'recherche stock plein
For i = Derlig To 1 Step -1
If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If j <> i And Cells(j, 2).Value = Reference Then Cells(j,
1).EntireRow.Delete
Next j
'vérification i<dernière ligne+1
Derlig = Range("B65536").End(xlUp).Row
If i > Derlig + 1 Then i = Derlig + 1
End If
Next i
End Sub
Michel
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de news:
iphjhn$3j0$1@speranza.aioe.org...
pierre a écrit, le 30/04/2011 17:57 :
Bonjour Michel
Tu as parfaitement compris mon besoin et la macro est parfaite.
Dès que stock et plein sont détectés ta macro supprime les lignes
contenant
la référence du produit se trouvant en colonne B (Ce qui soulage le
tableau )
et cela fonctionne parfaitement bien. Tellement bien que je voulais
l'enrichir avec comme condition 2 au lieu du mot fixe ( plein) une
variable
de type "commençant par" .
et garder une seule ligne au lieu de tout supprimer, la premiere en
partant
du haut.
J'abuse mais c'est tellement puissant avec vous le VBA .
Merci à toi ainsi qu'aux autres du forum
Pierre
Bonjour,
Left$(Cells(i, 8), 3) = "ple"
Cells(i, 8) est la huitième cellule de la ligne i, donc la cellule de la
colonne H, et plus exactement sa propriété par défaut, Value.
Left$(texte, nb) retourne nb caractères pris au début de texte.
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j <> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i > Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
"Gloops" a écrit dans le message de news: iphjhn$3j0$ pierre a écrit, le 30/04/2011 17:57 :
Bonjour Michel
Tu as parfaitement compris mon besoin et la macro est parfaite. Dès que stock et plein sont détectés ta macro supprime les lignes contenant la référence du produit se trouvant en colonne B (Ce qui soulage le tableau ) et cela fonctionne parfaitement bien. Tellement bien que je voulais l'enrichir avec comme condition 2 au lieu du mot fixe ( plein) une variable de type "commençant par" . et garder une seule ligne au lieu de tout supprimer, la premiere en partant du haut. J'abuse mais c'est tellement puissant avec vous le VBA . Merci à toi ainsi qu'aux autres du forum
Pierre
Bonjour,
Left$(Cells(i, 8), 3) = "ple"
Cells(i, 8) est la huitième cellule de la ligne i, donc la cellule de la colonne H, et plus exactement sa propriété par défaut, Value.
Left$(texte, nb) retourne nb caractères pris au début de texte.
Gloops
C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Th en Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour,
en laissant la ligne stock plein en place et en prenant comme condition
"ple.." voici ce que ça peut donner
Sub Cherchetsup()
'
Dim Reference As String
Dim Derlig As Long
Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003
'recherche stock plein
For i = Derlig To 1 Step -1
If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Th en
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If j<> i And Cells(j, 2).Value = Reference Then Cells(j,
1).EntireRow.Delete
Next j
'vérification i<dernière ligne+1
Derlig = Range("B65536").End(xlUp).Row
If i> Derlig + 1 Then i = Derlig + 1
End If
Next i
End Sub
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Th en Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
michel ou sam
oui, mais comme j'avais honteusement pompé ta proposition, c'était également pour en donner suite. Michel
"Gloops" a écrit dans le message de news: ipn701$og8$ C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
oui, mais comme j'avais honteusement pompé ta proposition, c'était également
pour en donner suite.
Michel
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de news:
ipn701$og8$1@speranza.aioe.org...
C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour,
en laissant la ligne stock plein en place et en prenant comme condition
"ple.." voici ce que ça peut donner
Sub Cherchetsup()
'
Dim Reference As String
Dim Derlig As Long
Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003
'recherche stock plein
For i = Derlig To 1 Step -1
If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If j<> i And Cells(j, 2).Value = Reference Then Cells(j,
1).EntireRow.Delete
Next j
'vérification i<dernière ligne+1
Derlig = Range("B65536").End(xlUp).Row
If i> Derlig + 1 Then i = Derlig + 1
End If
Next i
End Sub
oui, mais comme j'avais honteusement pompé ta proposition, c'était également pour en donner suite. Michel
"Gloops" a écrit dans le message de news: ipn701$og8$ C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
pierre
Bonjour
C'est pas mal, effectivement cela m'intéresse beaucoup merci
Pierre
je viens de m'acheter VBA pour les nuls, il me faudra 10 ans pour le même résultat
"michel ou sam" a écrit dans le message de news: 4dbfdd42$0$14671$
oui, mais comme j'avais honteusement pompé ta proposition, c'était également pour en donner suite. Michel
"Gloops" a écrit dans le message de news: ipn701$og8$ C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
Bonjour
C'est pas mal, effectivement cela m'intéresse beaucoup
merci
Pierre
je viens de m'acheter VBA pour les nuls, il me faudra 10 ans pour le même
résultat
"michel ou sam" <prenom-ou-sam@citron.fr> a écrit dans le message de news:
4dbfdd42$0$14671$ba4acef3@reader.news.orange.fr...
oui, mais comme j'avais honteusement pompé ta proposition, c'était
également pour en donner suite.
Michel
"Gloops" <gloops@invalid.zailes.org> a écrit dans le message de news:
ipn701$og8$1@speranza.aioe.org...
C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour,
en laissant la ligne stock plein en place et en prenant comme condition
"ple.." voici ce que ça peut donner
Sub Cherchetsup()
'
Dim Reference As String
Dim Derlig As Long
Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003
'recherche stock plein
For i = Derlig To 1 Step -1
If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If j<> i And Cells(j, 2).Value = Reference Then Cells(j,
1).EntireRow.Delete
Next j
'vérification i<dernière ligne+1
Derlig = Range("B65536").End(xlUp).Row
If i> Derlig + 1 Then i = Derlig + 1
End If
Next i
End Sub
C'est pas mal, effectivement cela m'intéresse beaucoup merci
Pierre
je viens de m'acheter VBA pour les nuls, il me faudra 10 ans pour le même résultat
"michel ou sam" a écrit dans le message de news: 4dbfdd42$0$14671$
oui, mais comme j'avais honteusement pompé ta proposition, c'était également pour en donner suite. Michel
"Gloops" a écrit dans le message de news: ipn701$og8$ C'est surtout Pierre, que ça va intéresser :)
michel ou sam a écrit, le 02/05/2011 11:58 :
Bonjour, en laissant la ligne stock plein en place et en prenant comme condition "ple.." voici ce que ça peut donner
Sub Cherchetsup() ' Dim Reference As String Dim Derlig As Long Derlig = Range("B65536").End(xlUp).Row 'sous excel 2003 'recherche stock plein For i = Derlig To 1 Step -1 If Cells(i, 5).Value = "stock" And Left$(Cells(i, 8), 3) = "ple" Then Reference = Cells(i, 2).Value 'suppression lignes de même référence For j = Derlig To 1 Step -1 If j<> i And Cells(j, 2).Value = Reference Then Cells(j, 1).EntireRow.Delete Next j 'vérification i<dernière ligne+1 Derlig = Range("B65536").End(xlUp).Row If i> Derlig + 1 Then i = Derlig + 1 End If Next i End Sub
Michel
Gloops
michel ou sam a écrit, le 03/05/2011 12:47 :
oui, mais comme j'avais honteusement pompé ta proposition, c'était également pour en donner suite. Michel
En effet, c'est élégant :)
michel ou sam a écrit, le 03/05/2011 12:47 :
oui, mais comme j'avais honteusement pompé ta proposition, c'était également
pour en donner suite.
Michel