escouger
XLDnaute Occasionnel
bonsoir,
Je rencontre une difficulté concernant un développement VBA qui fonctionne sur un PC 64 bits, sous windows 10 et avec excel 2019 32 bits.
Ce même programme ne fonctionne plus sur un autre PC identique sauf que son excel 2019 est en 64 bits.
Avec excel 32 bits:
dim openfile as OPENFILENAME
openfile.lstructsize = len(Openfile) contient 76
avec excel 64 bits:
dim openfile as OPENFILENAME
openfile.lstructsize = len(Openfile) contient 108
Voici la fonction qui, en excel 64 bits ne trouve jamais de fichiers correspondant au filtre:
Private Function SelectAFile( _
Path As String, _
Optional Filtre As String = "*.*") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Fichiers Excel (" & Filtre & ")" & Chr(0) & Filtre & Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
.lpstrInitialDir = Path
.lpstrTitle = "Files to Open"
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function
Merci de votre science!
Je rencontre une difficulté concernant un développement VBA qui fonctionne sur un PC 64 bits, sous windows 10 et avec excel 2019 32 bits.
Ce même programme ne fonctionne plus sur un autre PC identique sauf que son excel 2019 est en 64 bits.
Avec excel 32 bits:
dim openfile as OPENFILENAME
openfile.lstructsize = len(Openfile) contient 76
avec excel 64 bits:
dim openfile as OPENFILENAME
openfile.lstructsize = len(Openfile) contient 108
Voici la fonction qui, en excel 64 bits ne trouve jamais de fichiers correspondant au filtre:
Private Function SelectAFile( _
Path As String, _
Optional Filtre As String = "*.*") As String
Dim OpenFile As OPENFILENAME, lReturn As Long, sFilter As String
OpenFile.lStructSize = Len(OpenFile)
sFilter = "Fichiers Excel (" & Filtre & ")" & Chr(0) & Filtre & Chr(0)
With OpenFile
.lpstrFilter = sFilter
.nFilterIndex = 1
.lpstrFile = String(257, 0)
.nMaxFile = Len(OpenFile.lpstrFile) - 1
.lpstrFileTitle = OpenFile.lpstrFile
.nMaxFileTitle = OpenFile.nMaxFile
.lpstrInitialDir = Path
.lpstrTitle = "Files to Open"
.flags = 0
End With
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
Else
SelectAFile = Trim(Left(OpenFile.lpstrFile, _
InStr(1, OpenFile.lpstrFile, Chr(0)) - 1))
End If
End Function
Merci de votre science!