Bonjour,

J'ai un soucis sur une macro à plusieurs actions dans 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
Private Sub GENERER_Click()
 
Dim Tablo, iR%, i%, Tmp$, Sep$, Tablo2, iR2%, i2%, Tmp2$, Sep2$, Tablo3, iR3%, i3%, Tmp3$, Sep3$, Tablo4, iR4%, i4%, Tmp4$, Sep4$, Tablo5, iR5%, i5%, Tmp5$, Sep5$
With Sheets("Export")                    'On travaille directement sur la feuille export
 
    Sep = ";"
    iR = .Range("D65500").End(xlUp).Row  'Détermine la dernière ligne
   Tablo = .Range("A6:D" & iR)          'Mémorise le tout dans un tableau
   Open "\\195.1.1.70\seriem\TEST\OPALE.csv" For Output As #1
    For i = 1 To iR
      If Tablo(i, 4) <> "" Then          'Recopie uniquement les lignes du tableau <> ""
    Tmp = ""
      For k = 1 To 4
      Tmp = Tmp & CStr(Tablo(i, k)) & Sep
      Next
      End If
    Print #1, Tmp
    Next
    DoEvents
    Close #1
 
    Sep2 = ";"
    iR2 = .Range("AD1").End(xlUp).Row  'Détermine la dernière ligne
   Tablo2 = .Range("P1:AD" & iR2)          'Mémorise le tout dans un tableau
   Open "\\195.1.1.70\seriem\TEST\DEntetes_OPALE___.csv" For Output As #2
    For i2 = 1 To iR2
      If Tablo2(i2, 4) <> "" Then          'Recopie uniquement les lignes du tableau <> ""
    Tmp2 = ""
      For k = 1 To 4
      Tmp2 = Tmp2 & CStr(Tablo2(i2, k)) & Sep2
      Next
      End If
    Print #2, Tmp2
    Next
    DoEvents
    Close #2
 
 
 
 
    Sep3 = ";"
    iR3 = .Range("V65000").End(xlUp).Row  'Détermine la dernière ligne
   Tablo3 = .Range("P6:V" & iR3)          'Mémorise le tout dans un tableau
   Open "\\195.1.1.70\seriem\TEST\DLignes_OPALE___.csv" For Output As #3
    For i3 = 1 To iR3
      If Tablo3(i3, 4) <> "" Then          'Recopie uniquement les lignes du tableau <> ""
    Tmp3 = ""
      For k = 1 To 4
      Tmp3 = Tmp3 & CStr(Tablo3(i3, k)) & Sep3
      Next
      End If
    Print #3, Tmp3
    Next
    DoEvents
    Close #3
 
 
    Sep4 = ";"
    iR4 = .Range("Q2").End(xlUp).Row  'Détermine la dernière ligne
   Tablo4 = .Range("P2:Q" & iR4)          'Mémorise le tout dans un tableau
   Open "\\195.1.1.70\seriem\TEST\DMessages_OPALE___.csv" For Output As #4
    For i4 = 1 To iR4
      If Tablo4(i4, 4) <> "" Then          'Recopie uniquement les lignes du tableau <> ""
    Tmp4 = ""
      For k = 1 To 4
      Tmp4 = Tmp4 & CStr(Tablo4(i4, k)) & Sep4
      Next
      End If
    Print #4, Tmp4
    Next
    DoEvents
    Close #4
 
 
    Sep5 = ";"
    iR5 = .Range("Q3").End(xlUp).Row  'Détermine la dernière ligne
   Tablo5 = .Range("P3:Q" & iR5)          'Mémorise le tout dans un tableau
   Open "\\195.1.1.70\seriem\TEST\DLog_OPALE___.csv" For Output As #5
    For i5 = 1 To iR5
      If Tablo5(i5, 4) <> "" Then          'Recopie uniquement les lignes du tableau <> ""
    Tmp5 = ""
      For k = 1 To 4
      Tmp5 = Tmp5 & CStr(Tablo5(i5, k)) & Sep5
      Next
      End If
    Print #5, Tmp5
    Next
    DoEvents
    Close #5
 
End With
 
    ' Sauvegarde en Excel
   Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs Filename:="\\195.1.1.70\seriem\TEST\OPALE.xlsm", _
    FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    Application.DisplayAlerts = True
 
End Sub
Lorsque je clique sur le bouton j'ai un message d'erreur : Erreur d’exécution 9, L’indice n'appartient pas à la sélection, il bloque après la création du premier fichier



Merci

Morgan