Voici un exemple de procédure qui recherche tous les fichiers texte d'un répertoire donné, et qui en extrait un au hasard.
Sub RechercheFichiers(sFolder As String)
' Cette procedure recherche tous les fichiers texte contenus dans un répertoire donné.
' Elle les affiche dans une ListBox (nommée lstFiles, à ajouter sur ta feuille).
Dim NomFichier As String
Dim nbFiles As Long
NomFichier = "*.txt"
lstFiles.Clear
With Application.FileSearch
.NewSearch
.LookIn = sFolder
.SearchSubFolders = True
.Filename = NomFichier
.FileType = msoFileTypeAllFiles
.MatchTextExactly = True
If .Execute(msoSortByNone) > 0 Then
For i = 1 To .FoundFiles.Count
lstFiles.AddItem .FoundFiles(i)
Next i
Else
MsgBox "Aucun fichier n'a été trouvé."
End If
End With
End Sub
' Et là juste un bouton qui lance la recherche des fichiers textes :
Private Sub CommandButton2_Click()
Dim sFolder As String
sFolder = "C:\tmp" ' Met ton dossier ici
RechercheFichiers sFolder
End Sub
' Ensuite, quand ta listbox est remplie, tu en connais facilement le nombre d'éléments par la propriété lstFiles.ListCount
Sub PrendreUnFichierAuHasard()
Dim monFichierAuHasard As String
Dim iChoix As Integer
iChoix = Int(Rnd*LstFiles.ListCount)
monFichierAuHasard = lstFiles.List(iChoix)
MsgBox monFichierAuHasard ' Et hop ! Un fichier pris au hasard !
euh ben dans un premier temps j'aimerai que tu m'explique l'interet que tu aurais de faire ca ?!?
sinon si c'est vraiment ce que tu veux faire ... ben si tu connais le nom de tes fichiers tu stockes ces noms dans une liste et tu fait un random pour recuperer l'index et avoir l'un des fichiers aleatoirement ...
envin bon... a pas tout compris ce que tu voulais faire ;)
en fait je ne connais pas le langage vba... j'apprends tt simplement... et là je crée un Su do-ku sur excel!!
on apprends comme on peut! lol!
mes fichiers .txt correspondent à mes grilles...
j'y suis arrivé mais avec un fichier donc c pour ca que je souhaiterais faire un choix aléatoire...
Mais là c moi qui n'ai pas bien compris, enfin si j'ai compris mais je ne connais pas la synthaxe!!
je connais pu la syntax en vba mais ce qu'il faut que tu fasse c'est creer tes differents fichiers dans un repertoir
sudoku1.txt
sudoku2.txt
sudoku3.txt
......
sudokuN.txt
et apres qd tu charches ton appli tu fait
dim monNumFichier as integer
monNumFichier = Int((N* Rnd) + 1) 'sa devrai te tirer un nombre aleatoire en fonction de ton nombre de fichier
une fois que tu a le nom de ton fichier =>
Open "c:\....\Trukmuche\sudoku"& monNumFichier & ".txt"