A
aviorpat
Guest
Je fais de nouveau appel à vos méninges:
j'arrive bien depuis un commandbutton à ouvrir sous excel un fichier texte sélectionné, et qu'il soit correctement formaté.
je souhaite désormais copier une feuille de ce fichier ouvert dans mon classeur de travail, mais en utilisant la variable (ou une autre) definie au début (donc sans utiliser le véritable nom du classeur puisque je ne le connais pas avant qu'il soit selectionné).
J'arrive à le faire en spécifiant le nom du classeur et le nom de la feuille.
J'ai également fait copier dans une cellule de mon fichier de travail le nom du fichier ouvert et le nom de la feuille dans une autre cellule. est ce que ça peut être utile ?
le Code:
Private Sub CommandButton1_Click()
'ouvre un browser windows pour la sélection du fichier d'archive
opendial = Application.GetOpenFilename(FileFilter:="texte (*.txt), .txt", FilterIndex:=1, Title:="Sélectionner le fichier texte à ouvrir...", MultiSelect:=False)
'ouvre le fichier sélectionné avec Excel en le formatant de manière voulue
Workbooks.OpenText Filename:=opendial, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
False, Comma:=False, Space:=False, Other:=True, OtherChar:="|", _
FieldInfo:=Array(Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array _
(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2), Array(16, 2), Array(17, 2), Array(18, 2), Array(65, 2), Array(66, 2), Array(67, 2), Array(68, 2), Array(69, 2), Array(70, 2))
'chemin et nom du fichier en cours en cellule "A8"
Range("A8").Value = ActiveWorkbook.FullName
'Noms des onglets à partir de la cellule "A10"
For i = 1 To Sheets.Count
Range("A10").Cells(i, 1).Value = Sheets(i).Name
With Worksheets(1)
End With
Next
'Copie l'onglet d'archive dans le fichier de travail
Workbooks("D2_COUS_JUIL04.txt").Worksheets("D2_COUS_JUIL04").Copy Workbooks("extractionarchivagedemicoussinet.xls").Worksheets("DEBUT")
End Sub
Donc en clair : remplacer "D2_COUS_JUIL04.txt" par une variable et "D2_COUS_JUIL04" par une autre variable.
j'ai fait plusieurs essai mais j'ai une erreur ex 9 : l'indice n'appartient pas à la sélection.
D'avance merci
A+
Pat
j'arrive bien depuis un commandbutton à ouvrir sous excel un fichier texte sélectionné, et qu'il soit correctement formaté.
je souhaite désormais copier une feuille de ce fichier ouvert dans mon classeur de travail, mais en utilisant la variable (ou une autre) definie au début (donc sans utiliser le véritable nom du classeur puisque je ne le connais pas avant qu'il soit selectionné).
J'arrive à le faire en spécifiant le nom du classeur et le nom de la feuille.
J'ai également fait copier dans une cellule de mon fichier de travail le nom du fichier ouvert et le nom de la feuille dans une autre cellule. est ce que ça peut être utile ?
le Code:
Private Sub CommandButton1_Click()
'ouvre un browser windows pour la sélection du fichier d'archive
opendial = Application.GetOpenFilename(FileFilter:="texte (*.txt), .txt", FilterIndex:=1, Title:="Sélectionner le fichier texte à ouvrir...", MultiSelect:=False)
'ouvre le fichier sélectionné avec Excel en le formatant de manière voulue
Workbooks.OpenText Filename:=opendial, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:= _
False, Comma:=False, Space:=False, Other:=True, OtherChar:="|", _
FieldInfo:=Array(Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array _
(6, 2), Array(7, 2), Array(8, 2), Array(9, 2), Array(10, 2), Array(11, 2), Array(12, 2), Array(13, 2), Array(14, 2), Array(15, 2), Array(16, 2), Array(17, 2), Array(18, 2), Array(65, 2), Array(66, 2), Array(67, 2), Array(68, 2), Array(69, 2), Array(70, 2))
'chemin et nom du fichier en cours en cellule "A8"
Range("A8").Value = ActiveWorkbook.FullName
'Noms des onglets à partir de la cellule "A10"
For i = 1 To Sheets.Count
Range("A10").Cells(i, 1).Value = Sheets(i).Name
With Worksheets(1)
End With
Next
'Copie l'onglet d'archive dans le fichier de travail
Workbooks("D2_COUS_JUIL04.txt").Worksheets("D2_COUS_JUIL04").Copy Workbooks("extractionarchivagedemicoussinet.xls").Worksheets("DEBUT")
End Sub
Donc en clair : remplacer "D2_COUS_JUIL04.txt" par une variable et "D2_COUS_JUIL04" par une autre variable.
j'ai fait plusieurs essai mais j'ai une erreur ex 9 : l'indice n'appartient pas à la sélection.
D'avance merci
A+
Pat