Select case ou If

[Résolu]
Signaler
Messages postés
133
Date d'inscription
vendredi 17 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2008
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
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

Messages postés
1854
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
26
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

Messages postés
133
Date d'inscription
vendredi 17 novembre 2000
Statut
Membre
Dernière intervention
29 avril 2008

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.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
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]