Exclure des valeurs dans une boucle [Résolu]

Messages postés
38
Date d'inscription
lundi 13 janvier 2003
Dernière intervention
5 juillet 2005
- 20 déc. 2004 à 13:14 - Dernière réponse :
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Dernière intervention
23 octobre 2006
- 20 déc. 2004 à 20:49
Salut all,

Je voudrais savoir si on peut dire à une boucle "n'exécute pas le traitement si mon compteur prend telle valeur".

Exemple dans un export excel :

For row = 23 To 50

XlApp.ActiveSheet.Cells(row, col) = rcsAuditEval.Fields(field)

field = field + 1

Next

Sans faire le test avec un Si (car je peux avoir bcp de valeurs à exclure), comment puis-je faire pour lui dire de ne pas faire le traitement quand row prend les valeurs 42, 45, 48, 49 par exemple ?

Merci à tous.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 20 déc. 2004 à 19:32
3
Merci
Salut,

OK avec DARKSIDIOUS, je crois que le mieux est le select case :

For row = 23 To 50

select case row
case 42, 45, 48, 49
case else
XlApp.ActiveSheet.Cells(row, col) = rcsAuditEval.Fields(field)
field = field + 1
end select
Next

A la place des valeurs en dur (42, 45, 48, 49) tu peux mettre des variables (pourquoi pas des valeurs d'un tableau d'ailleurs).

Cordialement, CanisLupus

Merci cs_CanisLupus 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 20 déc. 2004 à 13:29
0
Merci
Tu peux soit faire plusieurs boucles, soit faire un select case.
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Dernière intervention
23 octobre 2006
- 20 déc. 2004 à 13:39
0
Merci
labout

Je metrais les valeur dans un tableau 1 valeur par élément
puis je parcourerais le tableau pour voir si la valeur est dedans

Dim aTab(10) as string
atab(0)="23"
atab(0)="24"
atab(0)="28"

For row = 23 To 50

if testeRow(atab,row) =false then
XlApp.ActiveSheet.Cells(row, col) = rcsAuditEval.Fields(field)
endif
field = field + 1

Next

function TestRow(tableau,row) as boolean
dim i as integer
TestRow=false
for i=0 to ubound(tableau)
if tableau(i)=row then
testrow=true
exit for
endif
next

@+
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Dernière intervention
23 octobre 2006
- 20 déc. 2004 à 19:47
0
Merci
labout

je crois que le tableau était dans ma proposition
@+
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
- 20 déc. 2004 à 20:20
0
Merci
Mais je faisais référence à ta proposition labout :) , quoiqu'avec
atab(0)="23"
atab(0)="24"
atab(0)="28"

on obtient
atab(0) ="28"
et tout le reste à ""

d'autre part, un tableau de string dans le cas présent n'est pas le top étant donné que les valeurs de row sont numériques.

Cordialement, CanisLupus
Messages postés
1356
Date d'inscription
samedi 8 décembre 2001
Dernière intervention
23 octobre 2006
- 20 déc. 2004 à 20:49
0
Merci
labout

Oui mais ce n'est pas du VB.net pointilleux sur ce point là
pour les atab(0))"23"
if s'agit bien sur d'une erreur le suivant est atab(1) etc..
du à un copier coller !
@+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.