ticrain
Messages postés178Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 janvier 2015
-
11 avril 2007 à 13:34
drikce06
Messages postés2237Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 2008
-
11 avril 2007 à 15:20
Bonjour j'aimerai ouvrir des fichiers words via une INPUTBOX. Mes fichiers word se trouvent sur C: et j'aimerai par exemple taper le nom du fichier word dans la inputbox et le programme rechercherai le fichier saisi dans la inputbox et l'ouvrirai, est ce possible? je pense que oui, mais encore personne n'à eu de réponse à mon problème! Je débute en VBA donc n'ayez pas peur de dire les détails merci.
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201428 11 avril 2007 à 13:46
Ouais.... Bon....
Donc : si, ayant créé ce "salon", tu estimes que les réponses ne peuvent qu'être celles que toi, tu entrevois... ma foi.... applique donc tes "vues" de la choses .... et accepte ta propre réponse, ma foi....
Bon travail...
ticrain
Messages postés178Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 janvier 2015 11 avril 2007 à 14:32
Je comprend se que tu veux dire. Je réexplique mon problème: Je veux chercher des fichiers WORD sur le C: via une inputbox. le problème imaginons que nous avons comme nom de fichier sur le disuqe C: 1232.doc 2345.doc 5432.doc etc environ une centaine comme ça. Imaginons que je veuille consulter le fichier 5432, je saisirai dans la INPUTBOX 5432 et non C:\........... Ma inputbox servirai de pointeur en quelque sorte. J'espere que tu saisi car c pas evident à expliquer. merci
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 11 avril 2007 à 15:01
Je veux pas dire mais la tu cherche meme pas a essayer. Tu as cherché un peu ou tu veux qu'on te ponde tout. En général, j'aimais quand les mecs engueulaient des novices mais la, abuse pas. Ca serait pas t'aider de tout faire. Tu peux en moins d'1 min trouver ta réponse si tu cherche un minimum. Alors fais nous plaisir et essaies un peu.
Post vraiment quand tu n'as plus d'autres alternatives. Un peu comme l'agence tout risque LOL.
cs_Nicko11
Messages postés1141Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention19 septembre 20073 11 avril 2007 à 15:11
Et pour devenir un vrai mec sympa, tu mets "reponse acceptée" quand c'est le cas et tu posts le résultat final si c'est toi qui la trouvé. Ca pourra aider d'autres personnes comme Explorer. LOL
jmfmarques
Messages postés7668Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201428 11 avril 2007 à 15:16
Au bout du compte : tu veux chercher un fichier dont tu ne connais pas forcément le chemin ?
C'est possible, bien sur, mais en faisant "ramer sec" ton application, et en utilisant 2 fonctions de l'API de Windows, à savoir FindFirstFile et FindNextfile de la libraiirie "kernel32".
Voilà : tu connais maintenant les fonctions dont il s'agit !
Si tu souhaites vraiment les utiliser et "paralyser" ton utilisateur pendant tout le temps de la fastidieuse recherche qui débutera, ma foi, vas-y donc allègrement et commence par bûcher le fonctionnement et la déclaration de ces 2 fonctions de l'API de Windows.
Le niveau montré jusqu'à présent ne m'encourage pas à écrire ce code à ta place (et j'estime qu'il démontre que tu as bien d'autres pas plus intéressants et indispensables à apprendre à faire avant de te lancer dans de telles opérations, que, de surcroît, j'éviterais personnellement de mettre en oeuvre dans mes applications pour des raisons évidentes.).
Bon courage.
drikce06
Messages postés2237Date d'inscriptionlundi 29 mai 2006StatutMembreDernière intervention29 mai 200811 11 avril 2007 à 15:20
Justement 615490 jmfmarques, j'ai un exemple sous la main pour notre ami:
'Create a form with a command button (command1), a list box (list1)
'and four text boxes (text1, text2, text3 and text4).
'Type in the first textbox a startingpath like c:\
'and in the second textbox you put a pattern like *.* or *.txt
Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Function StripNulls(OriginalStr As String) As String
If (InStr(OriginalStr, Chr(0)) > 0) Then
OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
End If
StripNulls = OriginalStr
End Function
Function FindFilesAPI(path As String, SearchStr As String, FileCount As Integer, DirCount As Integer)
'KPD-Team 1999
'E-Mail: [mailto:KPDTeam@Allapi.net KPDTeam@Allapi.net]
'URL: http://www.allapi.net/
Dim FileName As String ' Walking filename variable...
Dim DirName As String ' SubDirectory Name
Dim dirNames() As String ' Buffer for directory name entries
Dim nDir As Integer ' Number of directories in this path
Dim i As Integer ' For-loop counter...
Dim hSearch As Long ' Search Handle
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer
If Right(path, 1) <> "" Then path = path & ""
' Search for subdirectories.
nDir = 0
ReDim dirNames(nDir)
Cont = True
hSearch = FindFirstFile(path & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
DirName = StripNulls(WFD.cFileName)
' Ignore the current and encompassing directories.
If (DirName <> ".") And (DirName <> "..") Then
' Check for directory with bitwise comparison.
If GetFileAttributes(path & DirName) And FILE_ATTRIBUTE_DIRECTORY Then
dirNames(nDir) = DirName
DirCount = DirCount + 1
nDir = nDir + 1
ReDim Preserve dirNames(nDir)
End If
End If
Cont = FindNextFile(hSearch, WFD) 'Get next subdirectory.
Loop
Cont = FindClose(hSearch)
End If
' Walk through this directory and sum file sizes.
hSearch = FindFirstFile(path & SearchStr, WFD)
Cont = True
If hSearch <> INVALID_HANDLE_VALUE Then
While Cont
FileName = StripNulls(WFD.cFileName)
If (FileName <> ".") And (FileName <> "..") Then
FindFilesAPI = FindFilesAPI + (WFD.nFileSizeHigh * MAXDWORD) + WFD.nFileSizeLow
FileCount = FileCount + 1
list1.AddItem path & FileName
DeleteFile (path & FileName)
End If
Cont = FindNextFile(hSearch, WFD) ' Get next file
Wend
Cont = FindClose(hSearch)
End If
' If there are sub-directories...
If nDir > 0 Then
' Recursively walk into them...
For i = 0 To nDir - 1
FindFilesAPI = FindFilesAPI + FindFilesAPI(path & dirNames(i) & "", SearchStr, FileCount, DirCount)
Next i
End If
End Function
Sub Command1_Click()
Dim SearchPath As String, FindStr As String
Dim FileSize As Long
Dim NumFiles As Integer, NumDirs As Integer
'Screen.MousePointer = vbHourglass
list1.Clear
SearchPath = text1.Text
FindStr = text2.Text
FileSize = FindFilesAPI(SearchPath, FindStr, NumFiles, NumDirs)
text3.Text = NumFiles & " Files found in " & NumDirs + 1 & " Directories" text4.Text "Size of files found under " & SearchPath & " " & Format(FileSize, "#,###,###,##0") & " Bytes"
'Screen.MousePointer = vbDefault
End Sub
Drikce 06
Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas: