|
|
|
|
Bonsoir,
marche à suivre : 1) tu décris ton algorithme ça te forcera à préciser ce que tu veux faire et comment tu veux le faire 2) tu enregistres la macro unitaire via l'enregistreur de macro d'excel tu auras ainsi 80% de ton code 3) tu adaptes ce code pour qu'il gère les boucles et les variables. si tu coinces, tu cries A+ |
bonjour,
pourquoi faire simple quand on peut faire complique, ou l'inverse! Le plus simple, 1 - exporter les fichiers xls dans fichiers textes avec sepateur tabulation par exemple 2 - lancer le dos (y compris celui de windows XP) 3 - faire "copy "fichier 1"+"fichier 2" "fichier globale" " 4 - le reimporter sous excel... et c'est tout. exemple fichier1.txt fichier2.txt fichierglobale.txt copy fichier1+fichier2 fichierglobale.txt cordialement |
Searancher, j'espère qu'il n'y pas plusieurs feuilles dans les fichiers Excel... :-)
Comme dit JvDo, il faut savoir ce que tu veux faire... Tu veux "juste" copier les colonnes du fichier2 à coté des colonnes du fichier1, ou importer les données du fichier2 et les ajouter en dessous (par exemple) des données du fichier1, ou ajouter les feuilles du fichier2 au classeur fichier1... Bref, plus de précisions s'imposent :-) |
ma foi, je pense qu'il a été assez clair, du moins pour moi. Il a plusieurs fichiers excels ayant la meme structure et veut donc ne plus en faire qu'un seul. j'ai tout faux ? |
Bonjour, j'ai un soucis similaire mais encore plus fou.
Voila, j'ai Soixante fichiers excel de forme identique avec 5 à 6 onglets toujours de forme identique. (Ne demandez pas pourquoi c'est pour le TAF) Ces fichiers ne se trouvent pas forcément dans le même dossier et ne sont pas en nombre identiques Exemple: DossierA : Dossier1,dossier2,dossier3,dossier4..... Dossier1 : Exel1 Dossier2 : Excel2,Excel3 Dossier3 : Excel4,Excel5,Excel6 Dossier4 : Excel7,Excel8 Connaissez-vous une macro capable de tout me copier dans un Seul fichier Excel (Tout les fichiers les uns en dessous des autres) en indiquant le fichier dont l'info provient ainsi que l'onglet d'origine) That is your challenge !!! Good Luck |
Bonsoir ;
Le problème est-il résolu ou est-il tjs d'actualité, vu la date de demande? |
Bonsoir ;
Résolu ou pas, ma question est bête, voici un programme qui permet de sélectionner 1 ou +sieurs fichier(s) dans n'importe quel(s) répertoire(s) d'un disque local ou réseau. Les fichiers excel doivent avoir la même structure et comporter la première ligne en commentaire sur chaque fichier excel(sinon, adapter la suppressionde ces lignes). Ce VB concatène chacun des fichiers excel sélectionnés jusqu'à l'abandon et effectue une destruction de cellules non utiles puis constitue un fichier croisé dynamique en automatique. Il demande peut-être aussi une variable, je ne sais plus. Bonne analyse. Supprimer les lignes inutiles. Si besoin, je peux envoyer le fichier excel en exemple. --------------------------------VBA------------------------------------------------------------: 'La variable est de type Variant car elle peut prendre les valeurs: 'Booleenne: (Vrai/Faux) quand l'utilisateur ne sélectionne rien, ou annule l'opération. 'String: pour renvoyer le nom du fichier sélectionné. Dim file As Variant Dim fileTemplate As Variant Dim WorkBookData As Workbook Dim nbFichiers As Variant Dim L1 As Variant Dim LData As Variant Dim CL As Range Dim Navire As Variant Dim Nbl As Integer Dim Nbf As Integer Dim f As Integer Dim nom As String Private Sub RazMiseEnFormeDatas() Sheets("Feuil1").Activate Range("A1").Select Selection.End(xlDown).Select Selection.End(xlToRight).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlUp)).Select Selection.ClearContents Selection.Interior.ColorIndex = xlNone Selection.ClearComments With Selection.Borders(xlEdgeLeft) .LineStyle = xlNone End With With Selection.Borders(xlEdgeTop) .LineStyle = xlNone End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlNone End With With Selection.Borders(xlEdgeRight) .LineStyle = xlNone End With With Selection.Borders(xlInsideVertical) .LineStyle = xlNone End With With Selection.Borders(xlInsideHorizontal) .LineStyle = xlNone End With Selection.Rows.AutoFit Selection.Columns.AutoFit End Sub Private Sub SelectionFichierSimple() 'Affiche la boîte de dialogue "Ouvrir" file = Application.GetOpenFilename("Tous les fichiers (*.*),*.*") Nbf = WorksheetFunction.CountA(Columns("a:a")) nom = file MsgBox ("nom " & Nbf) End Sub Private Sub CopieDatasToTemplate() ' Ouverture du fichier de donnees Workbooks.Open file Set WorkBookData = Application.Workbooks.Open(file) WorkBookData.Sheets(1).Select Range("A1").Select ' MsgBox ("nombre lignes " & nom) NbData = 0 NbData = WorksheetFunction.CountA(Columns("a:a")) Range("A1:O" & NbData).Select Range(Selection, Selection.End(xlUp)).Select Range(Selection, Selection.End(xlToLeft)).Select Selection.Copy Windows(fileTemplate).Activate Range("" & L1).Select ActiveSheet.Paste Range("" & L1).Select fichier: If f < Nbf Then f = f + 1 Range("S" & f) = nom GoTo fichier End If Application.CutCopyMode = False WorkBookData.Close End Sub Sub Croise() ' ' tyty Macro ' Macro enregistrée le 07/11/2008 ' ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Feuil1!R1C1:R" & Nbl & "C4").CreatePivotTable TableDestination:="", TableName:= _ "Tableau croisé dynamique4", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveWorkbook.ShowPivotTableFieldList = True ActiveSheet.PivotTables("Tableau croisé dynamique4").AddFields RowFields:= _ Array("Stade_Montage", "Référence"), ColumnFields:=Array("Bloc", "Panneau") ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Référence"). _ Orientation = xlDataField End Sub Sub ImportData() Nb = 0 Line = 1 f = 1 fileTemplate = ThisWorkbook.name RazMiseEnFormeDatas suite: Nf = Nf + 1 SelectionFichierSimple If file = "Faux" Then Nbl = WorksheetFunction.CountA(Columns("a:a")) Columns("A:B").Select Selection.Delete Shift:=xlToLeft Columns("E:O").Select Selection.Delete Shift:=xlToLeft ' Sheets("Feuil1").Activate Recommence: Line = Line + 1 Col = Range("A" & Line) If Col = "Panneau" Then Rows(Line).Delete End If If Line < Nbl Then GoTo Recommence Else Nbl = WorksheetFunction.CountA(Columns("a:a")) Navire = InputBox("Code du navire") Line = 1 Range("E1") = "Navire" nav: If Line < Nbl Then Line = Line + 1 Range("E" & Line) = Navire GoTo nav End If Range("A1:G" & Nbl).Select Set mafeuille = ActiveWorkbook.ActiveSheet mafeuille.Copy ActiveWorkbook.SaveAs Filename:=mafeuille.name, FileFormat:=xlText, CreateBackup:=False mafeuille.Activate transf End If Else Nb = WorksheetFunction.CountA(Columns("a:a")) Nb = Nb + 1 If Nb = 3 Then Nb = 1 End If L1 = ("A" & Nb) 'MsgBox ("L1 " & L1) CopieDatasToTemplate GoTo suite End If End Sub
|
Résultats pour [EXCEL]Concatener plusieurs fichiers
Résultats pour [EXCEL]Concatener plusieurs fichiers
Résultats pour [EXCEL]Concatener plusieurs fichiers
Résultats pour [EXCEL]Concatener plusieurs fichiers
Résultats pour [EXCEL]Concatener plusieurs fichiers