Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Choix_Click() 'On commence par récupérer le nom du fichier qui contien cette macro: fichier_MODELE = ThisWorkbook.Name '********************************************************* 'Ouvrir un fichier à partir du controle common Dialog '********************************************************* ' si un fichier à déja été ouvert il faut le fermer If fichier <> "" Then ActiveWorkbook.Close savesanges = xlDoNotSaveChanges fichier = "" TxtFichier.Text = "" TxtMSN.Text = "" End If chemin = ap_OpenFile("", "Selection du fichier (*.xls)", "*.xls") If Len(chemin) > 0 Then fichier = "" For i = Len(chemin) To 1 Step -1 If Mid(chemin, i, 1) = "" Then Exit For Else fichier = Mid(chemin, i, 1) & fichier End If Next i 'donne le fichier selectionné. repertoire = Mid(chemin, 1, Len(chemin) - Len(fichier)) TxtFichier.Text = fichier Workbooks.Open Filename:=repertoire & fichier 'Visualise la 1er ligne. Range("A1:A1").Select 'donne le MSN ciblé. 'msn = Mid(fichier, 12, 5) ' TxtMSN.Text = msn 'temp = "0000" & Mid(msn, 4) & "H" ' mise au format XP0011H 'num_msn = Right(temp, 5) Else MsgBox ("Annulation de l'opération") End If End Sub Private Sub Quitter_Click() If fichier <> "" Then ActiveWorkbook.Close savesanges = xlDoNotSaveChanges fichier = "" TxtFichier.Text = "" Cbxfeuille.Clear End If End End Sub
c'est assez urgent
Pour l'instant avc mon interface graphique je n'ai fait que ouvrir, chercher le fichier
Private Sub Extraire_Click() If Len(fichier) = 1 Then 'Ensuite je détermine le nombre de ligne que j'ai dans ma colonne A de la feuille 2 Dim dern_ligne As String dern_ligne = (Range("A65536").End(xlUp).Row) Range("A1").Select 'Je crée le nombre d'onglets correspondant au nombre de ligne et je les renomme For Ctr = 1 To dern_ligne Sheets.Add , Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Tableau(Ctr) Next 'ouvre le fichier actuel à importer Set wbsource = Workbooks.Open(FichierAExtraire) 'sélectionne la feuille de données à importer 'for (s'il y a écrit 'XXX' dans la 1er ligne de la 1er colonne) Set wksNewSheet = wbsource.Sheets("sheet1") 'for (s'il y a écrit 'YYY' dans la 1er ligne de la 1er colonne) Set wksNewSheet = wbsource.Sheets("sheet2") 'for (s'il y a écrit 'AAA' dans la 1er ligne de la 1er colonne) Set wksNewSheet = wbsource.Sheets("sheet3") 'active cette feuille wksNewSheet.Activate wksNewSheet.Select 'selection des données que l'on veut importer Range(Cells(1, 1), Cells(17, 17)).Select 'copie les données sélectionnées Selection.Copy 'retourne vers le fichier de départ wbdest.Activate 'compte le nombre de lignes déjà utilisées dans ce fichier i = ActiveSheet.UsedRange.Rows.Count 'sélection de la cellule où on veut coller les données (la première vide) Cells(i + 1, 1).Select 'colle les données ActiveSheet.Paste 'ferme le fichier source wbsource.Close 'va vers la ligne suivante à importer fichier = Dir 'recommece la boucle avec la ligne suivante Loop wbdest.Activate End Sub If Len(fichier) = 0 Then MsgBox (" Veuillez d'abord selectionner un fichier ") Else Call Fichier_sortie MsgBox "Le fichier : " & fichier_FORMATE & " va être créé " & _ "dans le repertoire : " & repertoire 'mise en forme du fichier de sortie Call Mise_en_forme fichier = "" TxtFichier.Text = "" 'impression en PDF 'Call MISE_EN_PAGE_IMPRESSION_PDF 'ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)" ActiveWorkbook.PrintOut Copies:=1, ActivePrinter:= _ "PDFCreator", Collate:=True 'Je supprime tous les onglets précédant On Error Resume Next For Ctr = Sheets.Count To 1 Step -1 If Sheets(Ctr).Name <> ActiveSheet.Name Then SendKeys ("{ENTER}") Sheets(Ctr).Delete End If Next End If End Sub
J'ai cherché et lu beaucoup de forum mais aucun cas identique
Sur celui ci je veux lire la 2ème et 3eme page contenant les lignes qui m'interesse
Suivant ce qu'il y a inscrit dans chaque ligne (XXX-YYY-ZZZ...) je veux extraire le tableau correspondant.
- Ces différents tableau se trouvent dans différentes feuille (chacune renomé selon a quoi il correspond dans la ligne) du fichier nommé "FichierAExtraire"