Bonjour à tous,
je vous explique mon pb.
Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à
enlever.
Elles doivent etre enlevées si dans le champ B... j'ai une valeur
"interdite";
Le probleme est que j'ai 70 valeurs interdites!
Dans mon algo je fais une boucle du genre:
Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value
= "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" &
i).Value = "02070511......)
Rows(i).Select
Selection.Delete Shift:=xlUp
Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb
de caracteres par ligne apparamment.
J'ai essayé de faire une chaine du genre
condition = Range("B" & i).Value = "02060615501" Or Range... et faire
ensuite
Do While (condition) mais ca ne marche pas non plus.
Merci pour votre aide!!!
A tres vite
Jeff
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
RaMA
Bonjour
Comme ça?
Sub algo() Dim xx As Integer Dim mm() mm = Array("02060615501", "02060817001", "02070491001", "etc....") For x = 0 To UBound(mm) 'le truc à faire ici Next End Sub
Salutations RaMa -- . "Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff
Bonjour
Comme ça?
Sub algo()
Dim xx As Integer
Dim mm()
mm = Array("02060615501", "02060817001", "02070491001", "etc....")
For x = 0 To UBound(mm)
'le truc à faire ici
Next
End Sub
Salutations
RaMa
--
.
"Jeff" <jeff_toledo@hotmail.com> a écrit dans le message de
news:3ec0759a.0408260737.74424ac2@posting.google.com...
Bonjour à tous,
je vous explique mon pb.
Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à
enlever.
Elles doivent etre enlevées si dans le champ B... j'ai une valeur
"interdite";
Le probleme est que j'ai 70 valeurs interdites!
Dans mon algo je fais une boucle du genre:
Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value
= "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" &
i).Value = "02070511......)
Rows(i).Select
Selection.Delete Shift:=xlUp
Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb
de caracteres par ligne apparamment.
J'ai essayé de faire une chaine du genre
condition = Range("B" & i).Value = "02060615501" Or Range... et faire
ensuite
Do While (condition) mais ca ne marche pas non plus.
Merci pour votre aide!!!
A tres vite
Jeff
Sub algo() Dim xx As Integer Dim mm() mm = Array("02060615501", "02060817001", "02070491001", "etc....") For x = 0 To UBound(mm) 'le truc à faire ici Next End Sub
Salutations RaMa -- . "Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff
Michel Pierron
Bonsoir Jeff, Faire un array avec 70 valeurs, bonjour la conso mémoire.... Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y trouve, auquel cas, tu supprimes la ligne correspondante. MP
"Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff
Bonsoir Jeff,
Faire un array avec 70 valeurs, bonjour la conso mémoire....
Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y
rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y
trouve, auquel cas, tu supprimes la ligne correspondante.
MP
"Jeff" <jeff_toledo@hotmail.com> a écrit dans le message de
news:3ec0759a.0408260737.74424ac2@posting.google.com...
Bonjour à tous,
je vous explique mon pb.
Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à
enlever.
Elles doivent etre enlevées si dans le champ B... j'ai une valeur
"interdite";
Le probleme est que j'ai 70 valeurs interdites!
Dans mon algo je fais une boucle du genre:
Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value
= "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" &
i).Value = "02070511......)
Rows(i).Select
Selection.Delete Shift:=xlUp
Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb
de caracteres par ligne apparamment.
J'ai essayé de faire une chaine du genre
condition = Range("B" & i).Value = "02060615501" Or Range... et faire
ensuite
Do While (condition) mais ca ne marche pas non plus.
Merci pour votre aide!!!
A tres vite
Jeff
Bonsoir Jeff, Faire un array avec 70 valeurs, bonjour la conso mémoire.... Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y trouve, auquel cas, tu supprimes la ligne correspondante. MP
"Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff
RaMA
Re à adapter à ton truc
Sub algo() Dim I, Y As Integer Dim mm() mm = Array("02060615501", "02060817001", "02070491001", _ "etc....") Y = Range("b1:b7000").Row For I = 1 To ActiveSheet.Range("b1:b7000").Rows.Count For x = 0 To UBound(mm) If Range("b" & Y + I) = mm(x) Then Rows(Y + I).EntireRow.Delete Next Next I End Sub
Salutations RaMa
-- .
Re à adapter à ton truc
Sub algo()
Dim I, Y As Integer
Dim mm()
mm = Array("02060615501", "02060817001", "02070491001", _
"etc....")
Y = Range("b1:b7000").Row
For I = 1 To ActiveSheet.Range("b1:b7000").Rows.Count
For x = 0 To UBound(mm)
If Range("b" & Y + I) = mm(x) Then Rows(Y + I).EntireRow.Delete
Next
Next I
End Sub
Sub algo() Dim I, Y As Integer Dim mm() mm = Array("02060615501", "02060817001", "02070491001", _ "etc....") Y = Range("b1:b7000").Row For I = 1 To ActiveSheet.Range("b1:b7000").Rows.Count For x = 0 To UBound(mm) If Range("b" & Y + I) = mm(x) Then Rows(Y + I).EntireRow.Delete Next Next I End Sub
Salutations RaMa
-- .
Daniel.M
Salut Jeff,
En suivant l'idée de Michel, après avoir mis tes valeurs dans une plage nommée ValProhibées, ça donnerait ça (à condition qu'on puisse écrire en C1:C7000):
Sub EffaceDansColB() Dim D As Range
With Range("C1:C7000") .FormulaR1C1 = "=IF(ISNA(MATCH(RC[-1],ValProhibées,0)),"""",NA())" .Value = .Value On Error Resume Next Set D = .SpecialCells(xlCellTypeConstants, 16) On Error GoTo 0 If Not D Is Nothing Then D.EntireRow.Delete
End With Set D = Nothing End Sub
Salutations,
Daniel M.
"Michel Pierron" wrote in message news:
Bonsoir Jeff, Faire un array avec 70 valeurs, bonjour la conso mémoire.... Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y trouve, auquel cas, tu supprimes la ligne correspondante. MP
"Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff
Salut Jeff,
En suivant l'idée de Michel, après avoir mis tes valeurs dans une plage nommée
ValProhibées, ça donnerait ça (à condition qu'on puisse écrire en C1:C7000):
Sub EffaceDansColB()
Dim D As Range
With Range("C1:C7000")
.FormulaR1C1 = "=IF(ISNA(MATCH(RC[-1],ValProhibées,0)),"""",NA())"
.Value = .Value
On Error Resume Next
Set D = .SpecialCells(xlCellTypeConstants, 16)
On Error GoTo 0
If Not D Is Nothing Then D.EntireRow.Delete
End With
Set D = Nothing
End Sub
Salutations,
Daniel M.
"Michel Pierron" <michel.pierron@free.fr> wrote in message
news:OgG0Kk4iEHA.1348@tk2msftngp13.phx.gbl...
Bonsoir Jeff,
Faire un array avec 70 valeurs, bonjour la conso mémoire....
Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y
rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y
trouve, auquel cas, tu supprimes la ligne correspondante.
MP
"Jeff" <jeff_toledo@hotmail.com> a écrit dans le message de
news:3ec0759a.0408260737.74424ac2@posting.google.com...
Bonjour à tous,
je vous explique mon pb.
Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à
enlever.
Elles doivent etre enlevées si dans le champ B... j'ai une valeur
"interdite";
Le probleme est que j'ai 70 valeurs interdites!
Dans mon algo je fais une boucle du genre:
Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value
= "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" &
i).Value = "02070511......)
Rows(i).Select
Selection.Delete Shift:=xlUp
Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb
de caracteres par ligne apparamment.
J'ai essayé de faire une chaine du genre
condition = Range("B" & i).Value = "02060615501" Or Range... et faire
ensuite
Do While (condition) mais ca ne marche pas non plus.
Merci pour votre aide!!!
A tres vite
Jeff
En suivant l'idée de Michel, après avoir mis tes valeurs dans une plage nommée ValProhibées, ça donnerait ça (à condition qu'on puisse écrire en C1:C7000):
Sub EffaceDansColB() Dim D As Range
With Range("C1:C7000") .FormulaR1C1 = "=IF(ISNA(MATCH(RC[-1],ValProhibées,0)),"""",NA())" .Value = .Value On Error Resume Next Set D = .SpecialCells(xlCellTypeConstants, 16) On Error GoTo 0 If Not D Is Nothing Then D.EntireRow.Delete
End With Set D = Nothing End Sub
Salutations,
Daniel M.
"Michel Pierron" wrote in message news:
Bonsoir Jeff, Faire un array avec 70 valeurs, bonjour la conso mémoire.... Le mieux est de reporter tes 70 valeurs sur une feuille provisoire et d'y rechercher pour ton tableau de 7000 ligne si la valeur de "B" & i s'y trouve, auquel cas, tu supprimes la ligne correspondante. MP
"Jeff" a écrit dans le message de news:
Bonjour à tous, je vous explique mon pb. Dans un fichier excel comprenant environ 7000 lignes j'ai des lignes à enlever. Elles doivent etre enlevées si dans le champ B... j'ai une valeur "interdite"; Le probleme est que j'ai 70 valeurs interdites! Dans mon algo je fais une boucle du genre: Do While (Range("B" & i).Value = "02060615501" Or Range("B" & i).Value = "02060817001" Or Range("B" & i).Value = "02070491001" Or Range("B" & i).Value = "02070511......) Rows(i).Select Selection.Delete Shift:=xlUp Loop
Ayant 70 conditions comment je peux faire? car je suis restreint en nb de caracteres par ligne apparamment. J'ai essayé de faire une chaine du genre condition = Range("B" & i).Value = "02060615501" Or Range... et faire ensuite Do While (condition) mais ca ne marche pas non plus. Merci pour votre aide!!! A tres vite Jeff