Copie feuille de classeur à classeur

  • Initiateur de la discussion aviorpat
  • Date de début
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
 
A

aviorpat

Guest
Merci Abel
En fait, pas exactement pour ce cas de figure: je souhaitais utiliser la variable contenant le nom de mon fichier source. Ca ne marchait pas car dans cette variable il ajoutait le chemin du fichier, ce que j'ai résolu avec la fonction "mid" pour supprimer des caractères dans le string (pb : ne marche plus si les fichiers recherchés changent de répertoire et que leur chemin varie en longueur, il faut que je cherche autre chose ...)

Sinon ta macro est sensas et son principe va me servir dans la suite de ma procédure.

A+
Pat
 

Discussions similaires

Réponses
2
Affichages
273

Statistiques des forums

Discussions
312 339
Messages
2 087 403
Membres
103 537
dernier inscrit
alisafred974