Bonjour
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.
merci pour votre aide
Pierre
Bonjour
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.
merci pour votre aide
Pierre
Bonjour
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.
merci pour votre aide
Pierre
Bonjour
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.
merci pour votre aide
Pierre
Bonjour
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.
merci pour votre aide
Pierre
Bonjour
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.
merci pour votre aide
Pierre
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" <prtech@free.fr> a écrit dans le message de news:
4db89eef$0$14692$ba4acef3@reader.news.orange.fr...
Bonjour
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.
merci pour votre aide
Pierre
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de news:
4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" <prenom-ou-sam@citron.fr> a écrit dans le message de news:
4db91107$0$30794$ba4acef3@reader.news.orange.fr...
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" <prtech@free.fr> a écrit dans le message de news:
4db89eef$0$14692$ba4acef3@reader.news.orange.fr...
Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de news:
4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la tête
Encore merci à vous.
Pierre
"michel ou sam" a écrit dans le message de news:
4db9202d$0$30751$Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de
news: 4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la tête
Encore merci à vous.
Pierre
"michel ou sam" <prenom-ou-sam@citron.fr> a écrit dans le message de news:
4db9202d$0$30751$ba4acef3@reader.news.orange.fr...
Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" <prenom-ou-sam@citron.fr> a écrit dans le message de
news: 4db91107$0$30794$ba4acef3@reader.news.orange.fr...
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" <prtech@free.fr> a écrit dans le message de news:
4db89eef$0$14692$ba4acef3@reader.news.orange.fr...
Bonjour
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.
merci pour votre aide
Pierre
Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la tête
Encore merci à vous.
Pierre
"michel ou sam" a écrit dans le message de news:
4db9202d$0$30751$Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de
news: 4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que l'on
trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonjour,
Une autre façon de faire :
Tu dois adapter les 2 variables : Nom de la feuille,
La valeur en B:B que
tu veux conserver
J'ai tenu pour acquis que tes données débutaient en ligne 2 et que tu
avais des étiquettes de colonnes en ligne1
J'ai supposé que ta plage se situait en colonne A:H
Zone de critère du filtre élaboré : K1:K2 , tu peux utiliser les 2
cellules que tu veux
'-----------------------------------------
Sub test()
Dim DerLig As Long, Sh As Worksheet
Dim MaValeur As String
'------Variable à définir--------
Set Sh = Worksheets("Feuil1")
MaValeur = "refx01"
'--------------------------------
Application.ScreenUpdating = False
With Sh
DerLig = .Range("A:H").Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
'Définir zone de critère du filtre élaboré
.Range("K1") = ""
.Range("K2").Formula = _
"=(B2<>""" & MaValeur & """)+(D2<>""stock"")+(H2<>""plein"")<>0"
With .Range("A1:H" & DerLig)
.AdvancedFilter xlFilterInPlace, Sh.Range("K1:K2")
.Offset(1).Resize(.Rows.Count - 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
.Range("K2") = ""
.ShowAllData
End With
Application.ScreenUpdating = True
End Sub
'-----------------------------------------
MichD
--------------------------------------------
Bonjour,
j'ai du mal à comprendre.
Je suppose que tu parles de ce qui a en colonne B.
Faut il, dès que l'on trouve une ligne contenant "stock" et "plein",
supprimer toutes les lignes dont la référence commence par "ple" ?
ou faut il , dès que l'on trouve une ligne contenant "stock" et "plein",
noter la référence (par exemple "Ref" ) et supprimer toutes les lignes
dont la référence s'appelle "pleRef" ?
Michel
"pierre" a écrit dans le message de news:
4db9f19a$0$30756$Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la
tête
Encore merci à vous.
Pierre
"michel ou sam" a écrit dans le message de
news: 4db9202d$0$30751$Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de
news: 4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que
l'on trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
j'ai du mal à comprendre.
Je suppose que tu parles de ce qui a en colonne B.
Faut il, dès que l'on trouve une ligne contenant "stock" et "plein",
supprimer toutes les lignes dont la référence commence par "ple" ?
ou faut il , dès que l'on trouve une ligne contenant "stock" et "plein",
noter la référence (par exemple "Ref" ) et supprimer toutes les lignes
dont la référence s'appelle "pleRef" ?
Michel
"pierre" <prtech@free.fr> a écrit dans le message de news:
4db9f19a$0$30756$ba4acef3@reader.news.orange.fr...
Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la
tête
Encore merci à vous.
Pierre
"michel ou sam" <prenom-ou-sam@citron.fr> a écrit dans le message de
news: 4db9202d$0$30751$ba4acef3@reader.news.orange.fr...
Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" <prenom-ou-sam@citron.fr> a écrit dans le message de
news: 4db91107$0$30794$ba4acef3@reader.news.orange.fr...
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que
l'on trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" <prtech@free.fr> a écrit dans le message de news:
4db89eef$0$14692$ba4acef3@reader.news.orange.fr...
Bonjour
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.
merci pour votre aide
Pierre
Bonjour,
j'ai du mal à comprendre.
Je suppose que tu parles de ce qui a en colonne B.
Faut il, dès que l'on trouve une ligne contenant "stock" et "plein",
supprimer toutes les lignes dont la référence commence par "ple" ?
ou faut il , dès que l'on trouve une ligne contenant "stock" et "plein",
noter la référence (par exemple "Ref" ) et supprimer toutes les lignes
dont la référence s'appelle "pleRef" ?
Michel
"pierre" a écrit dans le message de news:
4db9f19a$0$30756$Bonsoir
Oui c'est exactement cela et la macro fonctionne parfaitement ( génial )
Question pour une variante, est-il possible de rechercher pour le même
résultat toute valeur commençant par "ple........" au lieu du mot exact ?
Si cela complique énormément la sub, pas la peine de vous creuser la
tête
Encore merci à vous.
Pierre
"michel ou sam" a écrit dans le message de
news: 4db9202d$0$30751$Bonjour,
voilà ce que cela pourrait donner
Sub Stockplein()
'
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 Cells(i, 8).Value = "plein" Then
Reference = Cells(i, 2).Value
'suppression lignes de même référence
For j = Derlig To 1 Step -1
If 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" a écrit dans le message de
news: 4db91107$0$30794$
Bonjour Pierre,
si je comprends bien , si tu as une ligne quelconque qui a en colonne E
"stock" et en colonne H "plein", il faut rechercher et supprimer toutes
les lignes qui ont la même référence que cette ligne (référence que
l'on trouve en colonne B).
Est ce bien cela ?
Michel
"pierre" a écrit dans le message de news:
4db89eef$0$14692$Bonjour
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.
merci pour votre aide
Pierre
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 var iable
de type "commençant par" .
et garder une seule ligne au lieu de tout supprimer, la premiere en par tant
du haut.
J'abuse mais c'est tellement puissant avec vous le VBA .
Merci à toi ainsi qu'aux autres du forum
Pierre
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 var iable
de type "commençant par" .
et garder une seule ligne au lieu de tout supprimer, la premiere en par tant
du haut.
J'abuse mais c'est tellement puissant avec vous le VBA .
Merci à toi ainsi qu'aux autres du forum
Pierre
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 var iable
de type "commençant par" .
et garder une seule ligne au lieu de tout supprimer, la premiere en par tant
du haut.
J'abuse mais c'est tellement puissant avec vous le VBA .
Merci à toi ainsi qu'aux autres du forum
Pierre