Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 12h31   #1
Invité de passage
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 3
Points : 3
Par défaut L'operateur OR fonctionne t'il sur les chaines textes?

Bonjour, j'aimerai effacer les lignes qui contiennent soit tel veleur ou tel veleur (96 valeurs en tout)

Seulement quand je met OR dans la ligne qui permet la recherche, ça n'a pas l'air de fonctionner.
Voici mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
 ' Suppression des lignes des produits non AID
 i = 1
 j = 1
Do While j < 2000
 
If Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID481" Or "AID482" Then
 
'suppression
Rows(i).Select
Selection.Delete Shift:=xlUp
 
i = i
j = j + 1
 
Else: i = i + 1
j = j + 1
 
 
End If
Loop
' fin de la fonction de Suppression des lignes de produits non AID
Donc quan je mets une expression à rechercher ça marche mais sur plusieurs expressions separés par OR ça ne fonctionne pas.

Avez-vous des idées?
klowba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 12h40   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 777
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 777
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
Code :
if Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID481" Or Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID482" then
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 12h40   #3
Membre Expert
 
Inscription : novembre 2006
Messages : 1 465
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 465
Points : 1 411
Points : 1 411
salut
ce n'est pas
Code :
if machin<> truc or chose
mais
Code :
if machin <> truc or machin<> chose
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 14h11   #4
Membre émérite
 
Inscription : avril 2007
Messages : 667
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2007
Messages : 667
Points : 802
Points : 802
Bonjour,

Si j'ai bien, compris ce que tu veux faire c'est supprimer les lignes qui ne concernent pas les produits "AIDxxx" ?

Dans ce cas la, une solution plus simple si tu en as beaucoup (96 par exemple ) et plus souple en cas d'ajout/suppression de reference serait ca:

Code :
if Left(Worksheets("Marges complémentaires").Cells(i, 17).Value,3) <> "AID" then
tonton fred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 14h34   #5
Invité de passage
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 3
Points : 3
oui voila mais il y'a des ref AIDxxx que je veux jarter aussi le plus simple est de garder toutes les references dont j'ai besoin et de virer toutre les autres.
klowba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h10   #6
Invité de passage
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 3
Points : 3
Citation:
Envoyé par bbil
Code :
if Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID481" Or Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID482" then
Alors comme ça, ça marche mais j'arrive en bout de ligne et je ne sais pas ajouter les 96 arguments.
klowba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h31   #7
Membre Expert
 
Inscription : novembre 2006
Messages : 1 465
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 465
Points : 1 411
Points : 1 411
Code :
1
2
3
4
5
6
7
8
9
10
sub jegarde
dim montableaudereferenceagarder()
montableaudereferenceagarder = array("", aid456,aid254aid698.....)
set mafeuille = Worksheets("Marges complémentaires")
for i = 1 to ubound(montableaudereferenceagarder )
if mafeuille.cells(i,17) <> montableaudereferenceagarder (i) then
...je sais pas ce que tu en fais ..
end if
next i
end sub
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h35   #8
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
Citation:
Envoyé par bbil
Code :
if Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID481" Or Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID482" then
Pour compléter car tu veux supprimer des lignes, il vaut mieux faire une boucle a l'envers, avec au lieu de faire un do while de faire un For :

Code :
1
2
3
4
5
6
 
for i = 2000 to 1 step -1
If Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID481" Or Worksheets("Marges complémentaires").Cells(i, 17).Value <> "AID482" then
   rows(i).delete
end if
next i
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 15h49   #9
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 777
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 777
Points : 16 855
Points : 16 855
Envoyer un message via Skype™ à bbil
utilise peu-être filter ...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
Sub MosnTest()
Dim tb(1) As String
Dim st As String
tb(0) = "AID481"
tb(1) = "AID482"
 
st = "AID481"
If UBound(Filter(tb, st, True)) >= 0 Then MsgBox st & " : OK" Else MsgBox st & " : NACK"
st = "AID483"
If UBound(Filter(tb, st, True)) >= 0 Then MsgBox st & " : OK" Else MsgBox st & " : NACK"
st = "AID482"
If UBound(Filter(tb, st, True)) >= 0 Then MsgBox st & " : OK" Else MsgBox st & " : NACK"
 
 
 
 
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h04.


 
 
 
 
Partenaires

Hébergement Web