Bonjour, je développe sous excel 2003 une macro opérant des tout un tas de chose sur des fichiers textes.
Je les importe donc sur excel, jusque là, pas de problème.

Cependant, migration futur sous 2010 qui s'annonce, je rencontre des difficultés. Certains paramètres ne semble plus être pris en compte sous 2010, surement des variable à changer mais je n'y arrive pas.

Voici le code:

Code vb : 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
 
Public Sub ChargementFichiers()
 
    Dim monClasseur As String
    Dim TempClasseur As String
    monClasseur = ActiveWorkbook.Name
 
    'Copie des tableaux de reference dans le classeur
    Workbooks.OpenText Filename:= _
        TraitImpPp.Range("ImportEs").Value _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
        Array(Array(0, 1), Array(3, 1), Array(12, 1), Array(25, 1)), TrailingMinusNumbers:= _
        True
    TempClasseur = ActiveWorkbook.Name
    [surligner]Sheets("es").Copy Before:=Workbooks("ControleImputationAvantPaye.xls").Sheets(2)[/surligner]
    Workbooks(TempClasseur).Close
    Rows("1:1").Insert Shift:=xlDown
    Range("A1") = "Societe"
    Range("B1") = "Matricule"
   Range("C1") = "Date de début"
    Range("D1") = "Date de fin"
 
    Workbooks.OpenText Filename:= _
        TraitImpPp.Range("Import4k").Value _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
        Array(Array(0, 1), Array(9, 1), Array(52, 1), Array(82, 1), Array(93, 1), Array(113, 1), _
        Array(131, 1), Array(141, 1), Array(145, 1)), TrailingMinusNumbers:=True
    TempClasseur = ActiveWorkbook.Name
   [surligner]Sheets("4k").Copy Before:=Workbooks("ControleImputationAvantPaye.xls").Sheets(3)[/surligner]
    Workbooks(TempClasseur).Close
    Rows("1:1").Insert Shift:=xlDown
    Range("A1") = "Matricule"
    Range("B1") = "Nom"
    Range("C1") = "Prenom"
    Range("D1") = "Lib1"
    Range("E1") = "Lib2"
    Range("F1") = "Date de début"
    Range("G1") = "Date de fin"
    Range("H1") = "Calc"
 
    Workbooks.OpenText Filename:= _
        TraitImpPp.Range("ImportVk").Value _
        , Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
        Array(Array(0, 1), Array(9, 1), Array(52, 1), Array(82, 1), Array(87, 1), Array(104, 1), _
        Array(123, 1), Array(146, 1), Array(156, 1), Array(160, 1)), TrailingMinusNumbers:= _
        True
    TempClasseur = ActiveWorkbook.Name
    [surligner]Sheets("vk").Copy Before:=Workbooks("ControleImputationAvantPaye.xls").Sheets(4)[/surligner]
    ....
...
End Sub

Sous 2010 ça m'indique comme erreur que mon classeur temporaire est trop grand pour être déplacé, et d'autres fois que l'indice n'appartient pas à la sélection ... Alors que ça marche parfaitement sous 2003.

Deuxième soucis, ma macro mets plus de 8 minutes à s'éxecuter, ce qui est du à un test que je fais sur une des colonnes de mon fichier comportant plus de 45.000 lignes, comparaison et addition de valeurs par rapport à une autre: =SI(SOMME.SI(A:A;A2;I:I)=100;"";"ano") ). Je dois vérifir que pour un id connu, la somme de ses itération en colonne I soit 100, sinon c'est une anomalie.

Merci de votre aide !

Cordialement, arkhang.