Lu,

C'est bon j'ai trouvé j'arrive à copier/coller !!!!

Tu avais raison blondelle avec la boucle je perdais ce que je copiais.

Pour ceux que ca interesse voilà le code, complet pour ouvrir un ou plusieurs fichier txt et dans le cas de plusieurs fichier txt de les mettre bout à bout afin de créer un seul et unique fichier Excel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
{
        //Ouvre Excel, Charge le fichier *.xls, Met en forme le fichier, Sauvegarde
 
        bool res;
        try
        {
                vMSExcel = Variant::GetActiveObject("Excel.Application");
        }
        catch(...)
        {
                vMSExcel = Variant::CreateObject("Excel.Application");
 
        }
        Excel = 1;
        DeleteFile("c:\\Affsiam\\temp.xls");
        DeleteFile("c:\\Affsiam\\archive.xls");
        vMSExcel.OlePropertySet("Visible", true);
        vMSExcel.OlePropertySet("ScreenUpdating",true);
        vTitle = StringToOleStr("Ouvrir"); // titre à donner à la boite de dialogue
        vMultiselect = true; // selection multiple autorisée
        vFichier = vMSExcel.OleFunction("GetOpenFilename",EmptyParam, EmptyParam, vTitle, EmptyParam, vMultiselect);
        if(vFichier.IsArray())
        {
                for(j=1 ; j<=vFichier.ArrayHighBound(1) ; j++)
                {
                        vFileName = vFichier.GetElement(j);
                        vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
                        vXLWorkbooks.OleFunction("OpenText", vFileName, vOrigin, vStartRow, vDataType, vTextQualifier, vConsecutiveDelimiter, vTab, vSemicolon, vComma, vSpace, vOther, vOtherChar, vFieldInfo);
                        vXLWorkbook = vXLWorkbooks.OlePropertyGet("Item", j);
                        vMSExcel.OlePropertySet("DisplayAlerts", false);//Désactive les alertes
                        vMSExcel.OlePropertySet("WindowState", -4140);//Minimise la fenêtre Excel
                        //Mise en Forme
                        iLigneLimite = CompteurLigne(vXLWorkbook);
                        vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
                        i=1;k=1;
                        do
                        {
                                vCol=StringToOleStr("B");
                                vLin=StringToOleStr((AnsiString)i);
                                vWsRange=vCol+vLin;
                                vCell = vWorksheet.OlePropertyGet("Range", vWsRange);
                                aCell=vCell;
                                if((aCell=="")||(aCell=="Heure"))
                                {
                                        iLinSupp=i;
                                        vLin=StringToOleStr((AnsiString)iLinSupp);
                                        vRow=vWorksheet.OlePropertyGet("Rows", vLin);
                                        vRow.OleProcedure("Delete", -4162);
                                }
                                else
                                {
                                        i++;
                                }
                                k++;
                        }
                        while(k<=iLigneLimite);
                        if(j>1)
                        {
                                vXLWorkbook = vXLWorkbooks.OlePropertyGet("Item", (j-1));
                                vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
                                vMSExcel.OlePropertySet("CutCopyMode",false);
                                vWorksheet.OlePropertyGet("UsedRange").OleFunction("Copy");
                                vXLWorkbook = vXLWorkbooks.OlePropertyGet("Item", j);
                                vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
                                vCol=StringToOleStr("A");
                                vLin=StringToOleStr((AnsiString)(CompteurLigne(vXLWorkbook)+1));
                                vWsRange=vCol+vLin;
                                vCell=vWorksheet.OlePropertyGet("Range", vWsRange);
                                vXLWorkbook.OlePropertyGet("ActiveSheet").OleProcedure("Paste",vCell);
                        }
                }
                vMSExcel.OlePropertySet("ScreenUpdating", true);
                vFileName="c:\\affsiam\\archive.xls";
                vXLWorkbook.OleFunction("Saveas", vFileName);
        }
}
Voici les variables à utliser, leurs initialisations et la sous fonction CompteurLigne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
Variant vFileName, vXLWorkbooks, vXLWorkbook,vCol,vLin,vFichier;
                Variant vMSExcel,vWorksheet,vLines,vUsedRange,vCell,vWsRange;
                Variant vTitle, vMultiselect,vRow,vFieldInfo,vOrigin,vStartRow;
                Variant vDataType,vTextQualifier,vConsecutiveDelimiter,vTab;
                Variant vSemicolon,vComma,vSpace,vOther,vOtherChar,FileFormat;
                Variant Password,WriteResPassword,ReadOnlyRecommended,fichier2;
                Variant CreateBackup;
                AnsiString aCell;
                int iTaille,i,j,k,iLinSupp,iLigneLimite;
                char Excel;
////////////////////////////////////////////
////////////    Sous-Fonction   //////////
////////////////////////////////////////////
 
int CompteurLigne (Variant vSrc)
{
        int iNbrLigne;
        Variant vFeuille,vLignes,vZoneUtilisee;
        vFeuille = vSrc.OlePropertyGet("Worksheets", 1);
        vZoneUtilisee = vFeuille.OlePropertyGet("UsedRange");
        vLignes = vZoneUtilisee.OlePropertyGet("Rows");
        iNbrLigne = vLignes.OlePropertyGet("Count");
        return iNbrLigne;
}

Je remercie Blondelle et Xav, Merci les gars

Ps : ca serait bien d'ajouter le copier coller et le traitement des txt dans la FaQ si y a besoin d'aide je veux bien aider

@++