Nous sommes actuellement le 30 Juin 2026, 01:45

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 
Auteur Message
MessagePublié: 30 Mars 2007, 18:11 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message: Re: Macro Excel - Open file
MessagePublié: 31 Mars 2007, 21:36 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 02 Avr 2007, 17:20 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 02 Avr 2007, 21:30 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Avr 2007, 09:49 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Avr 2007, 13:05 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Avr 2007, 20:13 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

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 :P : 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
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Avr 2007, 22:09 
Hors-ligne
Nouvel adepte
Nouvel adepte
Avatar de l’utilisateur

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? :lol:

_________________
qazzar

Y a rien de TEL qu'un bon p'tit programme EXCEL


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 05 Avr 2007, 22:48 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

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... :P

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 :P

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
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


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

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site