Atraxor
Messages postés20Date d'inscriptionlundi 29 août 2011StatutMembreDernière intervention 5 décembre 2011
-
22 sept. 2011 à 11:22
Atraxor
Messages postés20Date d'inscriptionlundi 29 août 2011StatutMembreDernière intervention 5 décembre 2011
-
22 sept. 2011 à 14:01
Bonjour.
Ayant bidouillé une macro permettant d'ouvrir sous excel un fichier texte avec un commondialo puis de copier le contenu de ce fichier à l'intérieur d'un classeur de calcul, je doit à présent développer la chose :
J'aurais besoin d'ouvrir plusieurs fichiers texte ous excel, de les copier chacun sur une feuille différente du classeur de calcul, MAIS ceci lors d'une seule utilisation du common dialog : autrement dit je souhaiterais pouvoir ouvrir plusieurs fichiers à la fois dans mon commondialog et récupérer l'adresse de chacun de ces fichiers.
Est ce réalisable d'après vous ?
Voici le bout de code poru l'import d'un seul fichier :
Sub Import()
'
' test Macro
' Macro enregistrée le 30/08/2011 par turchet
'
'
Dim Nom1, Nom2, Nomfeuille, fichier As String
Application.DisplayAlerts = False 'Permet de ne pas afficher les messages de confirmation de suppression
Nom1 = ActiveWorkbook.Name 'On récupère le nom du classeur de calculs
fichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") 'ouverture d'un composant de type common dialog pour récupérer le nom du fichier
If fichier <> "Faux" Then 'Si on n'a pas sélectionné de nouveau fichier, on ne fait rien
Workbooks.OpenText Filename:=fichier _
, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, TrailingMinusNumbers:=True
Nom2 = ActiveWorkbook.Name 'On récupère le nom du fichier duquel on va copier les données
Nomfeuille = ActiveSheet.Name 'Onrécupère le nom de la feuille contenant les données
Workbooks(Nom1).Activate
Worksheets("Donnees").Delete 'On supprime la feuille de données déjà existante
Workbooks(Nom2).Worksheets(Nomfeuille).Copy After:=Sheets(Sheets.Count) 'On récupère la feuille de l'autre classeur
Worksheets(Nomfeuille).Name = "Donnees" 'On la renomme en données
Workbooks(Nom2).Close 'Ferme le classeur de données désormais inutile sans demander de confirmations
Workbooks(Nom1).Sheets(1).Activate
End If
Application.DisplayAlerts = True
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 sept. 2011 à 11:32
Bonjour,
L'utilisation de cette boîte de dialogue ne me parait pas appropriée dans un tel cas de figure (choix de plusieurs fichiers)
Tu ne nous précises par ailleurs pas si tous les fichiers dont il s'agit se trouvent ou non dans un même dossier ou s'il sont disséminés un peu partout sur ton disque (ce qui n'est pas la même chose).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 22 sept. 2011 à 11:47
S'ils sont dans le même dossier, utilise alors tout bêtement Dir (ouvre ton aide VBA sur ce mot - tu trouveras même un exemple).
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Atraxor
Messages postés20Date d'inscriptionlundi 29 août 2011StatutMembreDernière intervention 5 décembre 2011 22 sept. 2011 à 14:01
En revanche, poru éviter toute crise d'épylepsie due à l'ouverture de 15000 feuilles différentes à la suite, je souhaiterais que lorsque je lance une procédure de type workbooks.open, ce classeur ne s'active pas.