prbleme chaines de caracteres

  • Auteur de la discussion darkspoilt
  • Date de début

darkspoilt

Expert
Bonjour
j'ai un petit souci lorsque je dois importer un fichier excel je le met au préalable dans une variable de type chaine de caractere. mais le probleme ce que dans le nom de fichier j'ai une partie aléatoire que je ne peux pas connaitre a l'avance y'a t'il un moyen de régler ce probleme??
merci d'avance
[cpp]nomClasseur = "D:\Test\" & a & "-" & a & "12" & partie variable & ".xls"[/cpp]
 

braindeadbzh

Grand Maître
Je comprends pas très bien le problème, elle sort d'où la partie variable?
 

hoegarden31

Expert
lol c imposible alors : comment veux tu ouvrir un fichier dont tu ne connait pas le nom
il va faloir que quelqu'un me l'explique si c possible :heink:
voici sinon une idee pour trouver des fichiers excel sans connaitre le nom :
[cpp]Option Explicit
Public dossier
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'32-bit API declarations
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Function GetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO, path As String, r As Long, x As Long, pos As Integer
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = ""
Else
bInfo.lpszTitle = Msg
End If
bInfo.ulFlags = &H1
x = SHBrowseForFolder(bInfo)
path = Space$(512)
r = SHGetPathFromIDList(ByVal x, ByVal path)
If r Then
pos = InStr(path, Chr$(0))
GetDirectory = Left(path, pos - 1)
Else
GetDirectory = ""
End If
End Function

Sub ouvrir_fichier()
Dim fs, nbfiles
dossier = GetDirectory("Choisit un dossier : ")
If dossier <> "" Then
Set fs = Application.FileSearch
With fs
.LookIn = dossier
.SearchSubFolders = True
.FileType = msoFileTypeAllFiles
If .Execute() > 0 Then
nbfiles = .FoundFiles.Count
MsgBox "il y a " & nbfiles & " fichiers excel."

Else
MsgBox "Pas de fichiers trouver."
End If
End With
End If
End Sub

[/cpp]
 

darkspoilt

Expert
J'ai écris un code plus simple mais il ne fonctionne pas je ne sais pas pourquoi

[cpp]Public Function Liste_Fichiers(aa As Integer, mm As interger) As String
Dim rep As String
Dim chemin As String
'chemin du répertoire par défaut
chemin = "D:\Eric\dossier_projets\TDB\PJPF\"
'obtient le premier fichier ou répertoire qui est dans "c:\"
rep = Dir(chemin)
'boucle tant que le répertoire n'a pas été entièrement parcouru
Do While (rep <> "")
'teste si c'est un fichier ou un répertoire
If Not (GetAttr(chemin & rep) And vbDirectory) = vbDirectory Then
'test sur l'année
If Mid(rep, 1, 2) = aa Then
'test sur le mois
If Mid(rep, 3, 2) = mm Then
'ajoute le jour dans une liste
liste_fichier = "D:\Eric\dossier_projets\TDB\PJPF\PJPF 20" & aa & "-" & rep & ".xls"
MsgBox rep
End If
End If
End If

'passe à l'élément suivant
rep = Dir
Loop
End Function

[/cpp]
 

Freeman23

Expert
SI ta fonction doit renvoyer ceci :
Code:
liste_fichier = "D:\Eric\dossier_projets\TDB\PJPF\PJPF 20" & aa & "-" & rep & ".xls"
Il manque un s à la fin de liste_fichier...
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 942
Membres
1 586 382
Dernier membre
alejandrooo
Partager cette page
Haut