| |
Consulter les messages sans réponse | Consulter les sujets actifs
|
Page 1 sur 1
|
[ 9 message(s) ] |
|
| Auteur |
Message |
|
Simo Bk
|
Publié: 30 Mars 2007, 18:11 |
|
Inscription : 25 Jan 2002, 06:05 Message(s) : 502 Localisation : Montréal
|
Salut tout le monde,
Je dois coder quelques macros pour Excel, j'apprends en enregistrant des macros et modifiant le code. À ce sujet, j'aurais une question.
Dans une des macros, je dois importer des données d'un fichier, voici ce que l'enregistrement donne :
Code : With ActiveSheet.QueryTables.Add(Connection:="TEXT;U:\Statistiques\Report.csv", Destination:=Range("A1")) .Name = "Report" .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 850 .TextFileStartRow = 1 .TextFileParseType = xlDelimited .TextFileTextQualifier = xlTextQualifierDoubleQuote .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2) .TextFileTrailingMinusNumbers = True .Refresh BackgroundQuery:=False End With Je voudrais modifier le code précédent pour que ça me demande quel fichier ouvrir, au lieu d'ouvrir le path predefini. : Code : Connection:="TEXT;U:\Statistiques\Report.csv"
Auriez vous-une solution?
Merci,
Simo
_________________ Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS
Dernière édition par Simo Bk le 05 Avr 2007, 22:48, édité 3 fois.
|
|
| Haut |
|
 |
|
qazzar
|
Publié: 31 Mars 2007, 21:36 |
|
Inscription : 03 Fév 2002, 00:55 Message(s) : 89
|
Simo Bk a écrit: Je voudrais modifier le code précédent pour que ça me demande quel fichier ouvrir, au lieu d'ouvrir le path predefini. : Code : Connection:="TEXT;U:\Statistiques\Report.csv" Simo Utilisez la méthode "GetOpenFilename": Code : Fichier = Application.GetOpenFilename("Csv Files (*.csv), *.csv") Connection:= Fichier
_________________ qazzar
Y a rien de TEL qu'un bon p'tit programme EXCEL
|
|
| Haut |
|
 |
|
Simo Bk
|
Publié: 02 Avr 2007, 17:20 |
|
Inscription : 25 Jan 2002, 06:05 Message(s) : 502 Localisation : Montréal
|
|
Je l'ai testé ce matin, ça marche #1.
Merci beaucoup,
Simo
_________________ Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS
|
|
| Haut |
|
 |
|
qazzar
|
Publié: 02 Avr 2007, 21:30 |
|
Inscription : 03 Fév 2002, 00:55 Message(s) : 89
|
|
Y'a pas de quoi.
_________________ qazzar
Y a rien de TEL qu'un bon p'tit programme EXCEL
|
|
| Haut |
|
 |
|
Simo Bk
|
Publié: 05 Avr 2007, 09:49 |
|
Inscription : 25 Jan 2002, 06:05 Message(s) : 502 Localisation : Montréal
|
|
Bonjour,
Désolé de réouvrir ce thread, une autre petite question, y a-t-il un moyen de choisir un path par défaut quand on fait le GetOpenFileName ?
Merci,
Simo
_________________ Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS
|
|
| Haut |
|
 |
|
qazzar
|
Publié: 05 Avr 2007, 13:05 |
|
Inscription : 03 Fév 2002, 00:55 Message(s) : 89
|
Simo Bk a écrit: Bonjour,
une autre petite question, y a-t-il un moyen de choisir un path par défaut quand on fait le GetOpenFileName ?
Non, pas directement avec GetOpenFileName. Mais on peut utiliser la
commande chDir:
Code : ChDir "C:\Mon dossier par défault" Fichier = Application.GetOpenFilename("Csv Files (*.csv), *.csv") Connection:= Fichier
_________________ qazzar
Y a rien de TEL qu'un bon p'tit programme EXCEL
|
|
| Haut |
|
 |
|
Simo Bk
|
Publié: 05 Avr 2007, 20:13 |
|
Inscription : 25 Jan 2002, 06:05 Message(s) : 502 Localisation : Montréal
|
Salut,
Merci j'avais trouvé finalement sur Google avec chdrive et chdir. Ça marche parfaitement
Question complémentaire  : Supposons que quelqu'un roule cette macro sur son ordi, mais que le drive/path n'existe pas, y a-t-il moyen d'ouvrir la macro dans un autre répertoire? Pour le moment, ce que j'ai vu c'est que ça plante et ça va en mode débogage... Ce que je voudrais faire, c'est d'avoir comme une seconde option, si le path n'existe pas, alors ouvre %systemdrive% (ou idéalement, encore mieux, le dernier path utilisé)
En googlant l'affaire, je pourrais y aller avec du Error Handling, mais je n'en ai jamais fait en VBA et je me demande s'il n'y a pas une méthode plus simple? Je suis presque sur qu'il doit y avoir un simple paramètre quelque part à changer...
Au pire des cas, je pourrais créer une fonction qui essaye de l'ouvrir avec le premier path, si on voit que la valeur retournée n'est pas bonne, alors on ouvre avec un path qui existe...
Je sais que j'abuse
Merci encore,
Simo
_________________ Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS
Dernière édition par Simo Bk le 05 Avr 2007, 22:49, édité 1 fois.
|
|
| Haut |
|
 |
|
qazzar
|
Publié: 05 Avr 2007, 22:09 |
|
Inscription : 03 Fév 2002, 00:55 Message(s) : 89
|
Simo Bk a écrit: Ce que je voudrais faire, c'est d'avoir comme une seconde option, si le path n'existe pas, alors ouvre %systemdrive% (ou idéalement, encore mieux, le dernier path utilisé) Essayez ça Code : If (CreateObject("Scripting.FileSystemObject").FolderExists("C:\Mon dossier par défault")) Then ChDir "C:\Mon dossier par défault" End If Fichier = Application.GetOpenFilename("Csv Files (*.csv), *.csv") Simo Bk a écrit: Je sais que j'abuse
J'envoie la facture à quel adresse? 
_________________ qazzar
Y a rien de TEL qu'un bon p'tit programme EXCEL
|
|
| Haut |
|
 |
|
Simo Bk
|
Publié: 05 Avr 2007, 22:48 |
|
Inscription : 25 Jan 2002, 06:05 Message(s) : 502 Localisation : Montréal
|
Qazzar, you are the best
Tu peux envoyer la facture à mon boss, il en sera ravi...
Sérieusement, merci pour ton aide, tu connais le sujet et on voit que t'as pas ta signature pour rien... Pour moi, je suis beaucoup plus dans le développement Web mais bon, on m'a demandé de faire ça et je m'execute, pauvre esclave que je suis
Merci encore,
Simo
_________________ Desktop : Core2 Duo E8600 3.33GHz - 8GB DDR3 - 2x NVIDIA GeForce 9600 GT - 3x Fujitsu 22" - Win7 Ultimate Laptop - Asus V1V : Core2 Duo P8600 2.4GHz - 4GB DDR2 - ATI Mobility Radeo HD 3650 - Win7 Ultimate Tablet - Asus Transformer Prime : NVIDIA Tegra 3 Quad-core - 1GB - Android ICS
|
|
| Haut |
|
 |
|
Page 1 sur 1
|
[ 9 message(s) ] |
|
Qui est en ligne ? |
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s) |
|
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum
|
|
|
|