A voir également:
- Ouverture fichier
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Fichier iso - Guide
4 réponses
f894009
Messages postés
17240
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
18 février 2025
1 713
Modifié par f894009 le 28/04/2016 à 14:13
Modifié par f894009 le 28/04/2016 à 14:13
Bonjour,
Y a un message d'erreur ou pas ???
Rectification, pas possible d'ouvrir un fichier avec le nom incomplet
Y a un message d'erreur ou pas ???
Rectification, pas possible d'ouvrir un fichier avec le nom incomplet
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié par cs_Le Pivert le 29/04/2016 à 18:28
Modifié par cs_Le Pivert le 29/04/2016 à 18:28
Bonjour à tous,
Si la 1ère partie du nom est connu, voici une macro qui va t'afficher le nom de tous les fichier commençant par ce nom dans un répertoire que tu auras choisi. Ensuite avec un double clic tu pourras ouvrir le classeur qui t’intéresse.
Mettre dans la feuille où vont s'afficher les données:
Dans un module standard:
Insérer un UserForm y mettre un bouton avec ce code:
Voir le fichier exemple:
http://www.cjoint.com/c/FDDqB41cWQQ
@+ Le Pivert
Si la 1ère partie du nom est connu, voici une macro qui va t'afficher le nom de tous les fichier commençant par ce nom dans un répertoire que tu auras choisi. Ensuite avec un double clic tu pourras ouvrir le classeur qui t’intéresse.
Mettre dans la feuille où vont s'afficher les données:
Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) nom = Target.Value If Range("C1") = "" Then Exit Sub chemin = Range("C1") & "\" Workbooks.Open chemin & nom 'on ouvre le classeur si existant End Sub
Dans un module standard:
Option Explicit Public chemin As String, nom As String
Insérer un UserForm y mettre un bouton avec ce code:
Option Explicit Private Sub CommandButton1_Click() 'Nécessite d'activer la référence "Microsoft Scripting RunTime" 'allez dans Outils Références et cocher "Microsoft Scripting RunTime" Dim Fso As Scripting.FileSystemObject Dim FileItem As Scripting.File Dim Tableau() Dim Plage As Range Dim m As Integer, i As Integer Dim z As Byte, Valeur As Byte Dim Cible As Variant SelectionDossier_source nom = Application.InputBox("Entrez le nom") nom = Dir(chemin & "\\" & nom & "*") Range("C1") = chemin & "\" 'Boucle sur les fichiers Do m = m + 1 ReDim Preserve Tableau(1 To 2, 1 To m) Tableau(1, m) = nom Set Fso = CreateObject("Scripting.FileSystemObject") Set FileItem = Fso.GetFile(chemin & "\" & nom) 'Récupère la date de création Tableau(2, m) = Left(FileItem.DateCreated, 10) 'Pour récupérer la date de dernière modification 'Tableau(2, m) = Left(FileItem.DateLastModified, 10) 'Pour récupérer la taille du fichier 'Tableau(2, m) = Left(FileItem.Size, 10) nom = Dir Loop Until nom = "" '---Trie les fichiers par ordre décroissant de création --- Do Valeur = 0 For i = 1 To m - 1 If CDate(Tableau(2, i)) < CDate(Tableau(2, i + 1)) Then For z = 1 To 2 Cible = Tableau(z, i) Tableau(z, i) = Tableau(z, i + 1) Tableau(z, i + 1) = Cible Next z Valeur = 1 End If Next i Loop While Valeur = 1 '--- Transfère les données dans la feuille de calcul --- Set Plage = Worksheets("Feuil1").Range("A1") Set Plage = Plage.Resize(UBound(Tableau(), 2), UBound(Tableau())) Plage = Application.Transpose(Tableau()) Worksheets("Feuil1").Columns("A:B").AutoFit End Sub Sub SelectionDossier_source() With Application.FileDialog(msoFileDialogFolderPicker) 'Définit un titre pour la boîte de dialogue .Title = "Choisissez le dossier des classeurs à rechercher" 'Affiche la boîte de dialogue .Show 'Affiche le nom du dossier sélectionné If .SelectedItems.Count > 0 Then chemin = .SelectedItems(1) End If End With End Sub
Voir le fichier exemple:
http://www.cjoint.com/c/FDDqB41cWQQ
@+ Le Pivert
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
30 avril 2016 à 08:35
30 avril 2016 à 08:35
Voici un autre exemple, ouvre le classeur aux modifications les plus récentes:
http://www.cjoint.com/c/FDEgIuFbyUQ
http://www.cjoint.com/c/FDEgIuFbyUQ
Merci pour ta réponse mais je voudrais que ce soit transparent pour les utilisateurs. donc je voudrais que si il écrit dans le userform 61117, que sa poursuive ma macro et que sa ouvre le fichier 61117 9lnw33.xlsx, que ma macro copie les données voulue et referme le fichier après. de plus, je peut avoir des fichiers en xls ou xlsx c'est pour cela que je voulais utiliser l'asterisk.
mon code fonctionne si je tape le nom complet et que mon fichier est bien un .xlsx
mais j'ai des fichiers .xls
Private Sub Valider_Click()
Dim CHEMIN As String
Dim FICHIER As String
CHEMIN = "C:\Users\xx\Documents\premiers tests\test recup\test\New folder\"
FICHIER = CHEMIN & menu.saisie.Text & ".xlsx"
' Dim choix
' vérification de l'existance du fichier
If Dir(FICHIER) = "" Then
' message erreur si il n'existe pas
MsgBox "le fichier est introuvable"
' Si ok ouverture du fichier
Else
Workbooks.Open Filename:=FICHIER
' copie et colle cellules
Sheets("RESUM").Select
Range("A2,B2,c2,d2,e2,f2,g2,h2,i2,j2,k2,l2,m2,n2,o2,p2,q2,r2,s2,t2,u2,v2,w2,x2,y2,Z2").Select
Selection.Copy
Windows("test.xls").Activate
Range("A65000").End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
' Pour fermer le fichier .xls
Workbooks(menu.saisie.Text & ".xlsx").Close SaveChanges:=False
End If
End Sub
mon code fonctionne si je tape le nom complet et que mon fichier est bien un .xlsx
mais j'ai des fichiers .xls
28 avril 2016 à 15:05
28 avril 2016 à 17:13
Donc, avoir le nom complet...
29 avril 2016 à 15:04