Spécification et ouverture d'un fichier Excel par macro
Résolu/Fermé
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
-
8 oct. 2013 à 18:27
Tom 44 Messages postés 47 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 11 mars 2014 - 9 oct. 2013 à 16:21
Tom 44 Messages postés 47 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 11 mars 2014 - 9 oct. 2013 à 16:21
A voir également:
- Spécification et ouverture d'un fichier Excel par macro
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment réduire la taille d'un fichier - Guide
- Si et excel - Guide
21 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 11:49
9 oct. 2013 à 11:49
Re,
question: l'extension du fichier .txt ou ???
code a mettre dans un module:
question: l'extension du fichier .txt ou ???
code a mettre dans un module:
Sub MaProcedure()
Dim NomFichier As String
NomFichier = RechercheFichier()
If NomFichier = "" Then
MsgBox "Vous n'avez sélectionné aucun fichier"
Else
'Workbooks.Open NomFichier
End If
End Sub
Function RechercheFichier() As String
Dim fd As FileDialog
Dim NomFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "fichier txt", "*.txt"
.Title = "Recherche de fichier"
'mettre le chemin du repertoire
.InitialFileName = "d:\_cles\"
End With
If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
RechercheFichier = NomFichier
Set fd = Nothing
End Function
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 08:11
9 oct. 2013 à 08:11
Bonjour,
X et Y ayant des noms aléatoires et comment l'utilisateur connait ces noms ????
X et Y ayant des noms aléatoires et comment l'utilisateur connait ces noms ????
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 08:21
9 oct. 2013 à 08:21
Bonjour,
X est le dossier conteneur du fichier cible.
Y est le fichier cible préalablement enregistré par l'utilisateur via une extraction d'une autre appli.
X est le dossier conteneur du fichier cible.
Y est le fichier cible préalablement enregistré par l'utilisateur via une extraction d'une autre appli.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 08:30
9 oct. 2013 à 08:30
Re,
enregistré par l'utilisateur via une extraction action faite dans le meme fichier excel que la recherche ???
enregistré par l'utilisateur via une extraction action faite dans le meme fichier excel que la recherche ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 08:44
9 oct. 2013 à 08:44
Pour faire simple :
Un utilisateur extrait des données (classeur excel) via une application autre que MSO.
Ces données sont enregistrées sur un classeur Excel (Y) dans un répertoire (X).
Le but c'est que la macro (insérée dans un classeur (Z)) puisse demander à un utilisateur "autre" d'aller chercher ce fichier (qui je rappelle à un nom aléatoire) dans le répertoire concerné.
J'espère que l'explication est assez claire pour compléter ma demande.
Merci par avance.
Un utilisateur extrait des données (classeur excel) via une application autre que MSO.
Ces données sont enregistrées sur un classeur Excel (Y) dans un répertoire (X).
Le but c'est que la macro (insérée dans un classeur (Z)) puisse demander à un utilisateur "autre" d'aller chercher ce fichier (qui je rappelle à un nom aléatoire) dans le répertoire concerné.
J'espère que l'explication est assez claire pour compléter ma demande.
Merci par avance.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 08:59
9 oct. 2013 à 08:59
Re,
Non, il manque le comment votre macro peut connaitre le fichier a chercher, puisque deux appli differentes !!!
Non, il manque le comment votre macro peut connaitre le fichier a chercher, puisque deux appli differentes !!!
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 09:06
9 oct. 2013 à 09:06
La macro va "simplement" demander à l'utilisateur d'aller le chercher (par une fonction parcourir j'imagine) dans le répertoire le contenant.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 09:22
9 oct. 2013 à 09:22
Re,
Vous ne repondez pas a la question. La macro ne peut pas demander de chercher un fichier si informatiquement elle ne le connait pas !!!!!!
Vous ne repondez pas a la question. La macro ne peut pas demander de chercher un fichier si informatiquement elle ne le connait pas !!!!!!
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 09:28
9 oct. 2013 à 09:28
Re,
Ne serait il pas possible qu'une macro ouvre une boite de dialogue demandant à un utilisateur de parcourir "manuellement" son disque local ou réseau afin d'y aller chercher un fichier donné à choisr là aussi "manuellement" ?
Désolé pour les explications non fructueuses.
Et encore merci pour votre patience.
Ne serait il pas possible qu'une macro ouvre une boite de dialogue demandant à un utilisateur de parcourir "manuellement" son disque local ou réseau afin d'y aller chercher un fichier donné à choisr là aussi "manuellement" ?
Désolé pour les explications non fructueuses.
Et encore merci pour votre patience.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 9/10/2013 à 09:36
Modifié par f894009 le 9/10/2013 à 09:36
Re,
Désolé pour les explications non fructueuses. Y a pas de lezard.
Oui, c'est faisable.
Question subsidiaire: le fichier a ouvrir est de quel type ??? texte ou ???? et que voulez-vous en faire: simple consultation ou ????
Désolé pour les explications non fructueuses. Y a pas de lezard.
Oui, c'est faisable.
Question subsidiaire: le fichier a ouvrir est de quel type ??? texte ou ???? et que voulez-vous en faire: simple consultation ou ????
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 09:39
9 oct. 2013 à 09:39
Le fichier est une compilation de colonnes de données texte.
Ensuite ce fichier sera utilisé pour remplir certains champs d'un autre fichier.
Ensuite ce fichier sera utilisé pour remplir certains champs d'un autre fichier.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 9/10/2013 à 09:42
Modifié par f894009 le 9/10/2013 à 09:42
Re,
Ne maîtrisant pas vraiment le codage VBA vous apprenez vite et sans probleme ????
Quel excel avez-vous ??
Ne maîtrisant pas vraiment le codage VBA vous apprenez vite et sans probleme ????
Quel excel avez-vous ??
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 09:46
9 oct. 2013 à 09:46
Oui pas de soucis.
J'arrive à lire un code et à le déchiffrer "convenablement"
Excel 2010
J'arrive à lire un code et à le déchiffrer "convenablement"
Excel 2010
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 10:09
9 oct. 2013 à 10:09
Re,
Deux phases: recherche et ensuite import
1/pour chercher un fichier (une des facon de faire, adaptez le type de fichier):
https://www.developpez.net/forums/d485262/logiciels/microsoft-office/excel/macros-vba-excel/getopenfilename-nom-fichier-format/
dans l'exemple, il n'y a pas le dossier par defaut, nous verrons apres. Le fichier ne sera pas a ouvrir mais a importer.
2/ pour importer un fichier: utilisez l'enregistreur de macro en faisant une importation avec Donnees, importation a partir du texte et modifiez le code avec le resultat de la recherche.
commencez par ces sujets. Je dois m'absenter une heure ou deux, si vous le voulez je vous retrouve pour la suite.
A+
Deux phases: recherche et ensuite import
1/pour chercher un fichier (une des facon de faire, adaptez le type de fichier):
https://www.developpez.net/forums/d485262/logiciels/microsoft-office/excel/macros-vba-excel/getopenfilename-nom-fichier-format/
dans l'exemple, il n'y a pas le dossier par defaut, nous verrons apres. Le fichier ne sera pas a ouvrir mais a importer.
2/ pour importer un fichier: utilisez l'enregistreur de macro en faisant une importation avec Donnees, importation a partir du texte et modifiez le code avec le resultat de la recherche.
commencez par ces sujets. Je dois m'absenter une heure ou deux, si vous le voulez je vous retrouve pour la suite.
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 10:58
9 oct. 2013 à 10:58
Merci pour ce lien très utile.
Ma macro donne donc ceci :
Sub Acces()
Dim Repertoire As FileDialog
Dim NomFichier As String
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
If Repertoire.Show = -1 Then NomFichier = Repertoire.SelectedItems(1)
RechercheFichier = NomFichier
Set Repertoire = Nothing
End Sub
Par contre je ne vois toujours pas les fichiers contenus dans le repertoire choisi.
J'ai bien testé avec la manip de la touche F5, mais rien n'y fait...
Auriez vous une solution à cette difficulté ?
Merci par avance.
Ma macro donne donc ceci :
Sub Acces()
Dim Repertoire As FileDialog
Dim NomFichier As String
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
If Repertoire.Show = -1 Then NomFichier = Repertoire.SelectedItems(1)
RechercheFichier = NomFichier
Set Repertoire = Nothing
End Sub
Par contre je ne vois toujours pas les fichiers contenus dans le repertoire choisi.
J'ai bien testé avec la manip de la touche F5, mais rien n'y fait...
Auriez vous une solution à cette difficulté ?
Merci par avance.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
9 oct. 2013 à 11:42
9 oct. 2013 à 11:42
Re,
Les raccourcis c'est bien, mais faut un juste milieu. Je vous complete un exemple de code.
A+
Les raccourcis c'est bien, mais faut un juste milieu. Je vous complete un exemple de code.
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 14:38
9 oct. 2013 à 14:38
Parfait le code est juste ce qu'il me fallait.
Merci beaucoup.
Par contre comment puis-je faire pour que le fichier selectionné s'ouvre et reste actif ?
J'ai l'impression que la macro ne "stocke" pas le nom du fichier et du coup je n'arrive pas à passer par un code du type :
Workbooks.Open Filename:="*.xls"
Auriez vous la solution finale à ce sujet ?
Merci encore pour votre aide.
Merci beaucoup.
Par contre comment puis-je faire pour que le fichier selectionné s'ouvre et reste actif ?
J'ai l'impression que la macro ne "stocke" pas le nom du fichier et du coup je n'arrive pas à passer par un code du type :
Workbooks.Open Filename:="*.xls"
Auriez vous la solution finale à ce sujet ?
Merci encore pour votre aide.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 9/10/2013 à 14:59
Modifié par f894009 le 9/10/2013 à 14:59
Re,
je repete la question: l'extension du fichier .txt ou ???
pas passer par workbooks.open. Nommez un onglet Affichage de votre fichier excel. Le fichier "texte" sera importe voir Sub Import_Fichier(Rep_Fich, Chemin_Complet), sera surement a adapter.
Code plus evolue:
A+
je repete la question: l'extension du fichier .txt ou ???
pas passer par workbooks.open. Nommez un onglet Affichage de votre fichier excel. Le fichier "texte" sera importe voir Sub Import_Fichier(Rep_Fich, Chemin_Complet), sera surement a adapter.
Code plus evolue:
Sub MaProcedure()
Dim Chemin_et_Fichier As String, Fichier As String, Rep_Fichier As String
'recuperation du chemin et nom de fichier
Chemin_et_Fichier = RechercheFichier(Rep_Fichier)
'extraction du nom de fichier
Fichier = Right(NomFichier, Len(Chemin_et_Fichier) - Len(Rep_Fichier))
If Chemin_et_Fichier = "" Then
MsgBox "Vous n'avez sélectionné aucun fichier"
Else
'import fichier
Call Import_Fichier(Rep_Fichier, Chemin_et_Fichier)
End If
End Sub
Sub Import_Fichier(Rep_Fich, Chemin_Complet)
'penser a nommer un onglet Affichage"
Worksheets("Affichage").Activate
'Efface le contenu de toutes les cellules de l'onglet actif
Cells.ClearContents
'Importation du fichier texte a afficher, premiere cellule a remplir: A2
'la base du code est obtenu avec l'enregistreur de macro et travaile en fonction
'du besoin: noms de ficher et repertoire changeant en fonction de la date
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Chemin_Complet, Destination:=Range("$A$1"))
.Name = Fichier
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False 'pas d'ajustement des colonnes
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlMSDOS 'format txt msdos
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSpaceDelimiter = True 'delimiteur espace
.TextFileColumnDataTypes = Array(xlTextFormat) 'definition format colonnes
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
Function RechercheFichier(Rep_Fich) As String
Dim fd As FileDialog
Dim NomFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "fichier txt", "*.txt"
.Title = "Recherche de fichier"
'mettre le chemin du repertoire
.InitialFileName = "d:\_cles\"
End With
If fd.Show = -1 Then
NomFichier = fd.SelectedItems(1)
Rep_Fich = fd.InitialFileName
End If
RechercheFichier = NomFichier
Set fd = Nothing
End Function
A+
Tom 44
Messages postés
47
Date d'inscription
mardi 30 juillet 2013
Statut
Membre
Dernière intervention
11 mars 2014
9 oct. 2013 à 15:08
9 oct. 2013 à 15:08
Excuse moi j'ai du passer cette question...
Le fichier cible possède une extension .xls
Et de nouveau merci pour ce code.
Le fichier cible possède une extension .xls
Et de nouveau merci pour ce code.
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
Modifié par f894009 le 9/10/2013 à 15:25
Modifié par f894009 le 9/10/2013 à 15:25
Re,
le code importation ne marchera pas pour un ficher xls
code adapter pour fichier xls
A+
le code importation ne marchera pas pour un ficher xls
code adapter pour fichier xls
Sub MaProcedure()
Dim Chemin_et_Fichier As String, Fichier As String, Rep_Fichier As String
'recuperation du chemin et nom de fichier
Chemin_et_Fichier = RechercheFichier(Rep_Fichier)
If Chemin_et_Fichier = "" Then
MsgBox "Vous n'avez sélectionné aucun fichier"
Else
'ouverture ficher selectionne
Workbooks.Open (Chemin_et_Fichier)
End If
End Sub
Function RechercheFichier(Rep_Fich) As String
Dim fd As FileDialog
Dim NomFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "fichier xls", "*.xls"
.Title = "Recherche de fichier xls"
'mettre le chemin du repertoire
.InitialFileName = "d:\_cles\"
End With
If fd.Show = -1 Then
NomFichier = fd.SelectedItems(1)
Rep_Fich = fd.InitialFileName
End If
RechercheFichier = NomFichier
Set fd = Nothing
End Function
A+