Select case ou If

Résolu
cs_darkwhite Messages postés 133 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 29 avril 2008 - 2 déc. 2005 à 21:03
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 2 déc. 2005 à 21:48
Salut

Je voudrais savoir si (mise a part les differences de syntaxe) il y a
vraimment une difference fondamental entre l'instruction select case et
le if

merci

3 réponses

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
2 déc. 2005 à 21:34
Bonsoir,

Ci-dessous, les 2 synthaxes:

Exemple pour rechercher x fichiers dans un répertoire.
Recherche de fichiers dont la date de modif est inférieure de 5 jours.

Dim Path
Path = "d:\KRNSDE"


MsgBox ShowFolderList(Path),vbmessage,"Fichiers présents dans le répertoire"
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe, f, fdate, fname, dtDiffFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(path)
Set fic = Dossiers.Files


For Each fichiers in fic
Set f = fso.GetFile(fichiers)
fdate = f.DateLastModified
fname = f.Name
dtDiffFile = DateDiff("d", Now, fdate)
If dtDiffFile <= -5 Then
MsgBox "Le fichier " & Path & fname & " sera supprimé car créé le " & fdate
' fso.DeleteFile(Path & fname)
Else
MsgBox "Le fichier " & Path & fname & " ne sera pas supprimé car créé le " & fdate
End If
strListe = strListe & vbcrlf & vbcrlf & fname & " " & fdate
Next
ShowFolderList = strListe
End Function

Exemple pour rechercher x possiblités pré-definies.
En fonction des jours on effectue une action.

Dim jour, jour1, jour2
Dim fso, wSrce
Dim dossier, fichier, fichiers
Dim WshShell, strList, verif


wSrce = "c:\Rapports-JUPITER"


'''
''' Création des variables de dates
'''
jour = DatePart("w", Date)
jour1 = Array("Samedi","Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi")
jour2 = jour1(jour)


'''
''' Delete des fichiers en fonction du jour
'''
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(path1)
Set fichiers = Dossier.Files
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "C:\WINDOWS\EXPLORER.EXE /n,/e," & wSrce
WScript.Sleep(1000)


For Each fichier in fichiers
Select Case jour2
Case "Lundi"
IF Left(fichier.name,5) = "Vendr" Then
strList = strList & vbcrlf & fichier
' fso.DeleteFile(fichier)
End If
Case "Mardi"
IF Left(fichier.name,5) = "Lundi" Then
strList = strList & vbcrlf & fichier
' fso.DeleteFile(fichier)
End If
Case "Mercredi"
IF Left(fichier.name,5) = "Mardi" Then
strList = strList & vbcrlf & fichier
' fso.DeleteFile(fichier)
End If
Case "Jeudi"
IF Left(fichier.name,5) = "Mercr" Then
strList = strList & vbcrlf & fichier
' fso.DeleteFile(fichier)
End If
Case "Vendredi"
IF Left(fichier.name,5) = "Jeudi" Then
strList = strList & vbcrlf & fichier
' fso.DeleteFile(fichier)
End If
End Select
Next
WScript.Sleep(1000)
WshShell.SendKeys "%{F4}",true
WshShell.Run "C:\WINDOWS\EXPLORER.EXE /n,/e," & wSrce
WScript.Sleep(2000)
WshShell.SendKeys "%{F4}",true
Verif = WshShell.Popup(strList & vbcrlf & vbcrlf , 5, "Fichiers supprimés du répertoire : " & wSrce)
3
cs_darkwhite Messages postés 133 Date d'inscription vendredi 17 novembre 2000 Statut Membre Dernière intervention 29 avril 2008
2 déc. 2005 à 21:40
Merci c'est super mais bon je suis un vrai debutant je vais mettre longtemps a dechiffrer sa mais merci can meme sa m'apporte beaucoup.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
2 déc. 2005 à 21:48
salut,

si ta question porte sur "pourquoi plus l'un que l'autre", je ne trouve plus le topic exact mais la réponse de mémoire était :


le select case est plus lisible, mais un peu plus long d'execution.


PCPT [AFCK]
0
Rejoignez-nous