Bonjour,

Pour simplifier une procédures assez lourde j'ai créé une macro qui bloque à un mmt je ne sais pas pkoi....

Je tiens d'abord à dire que je suis un fan de l'aide VBA ms en ce moment je suis au luxembourg et mon pc a été réinstallé en Italien (me demander pas pkoi...) dc je capte ke dalle (et on ne se moque pas merci !!!)

Donc pour faire simple : pour chaque ligne, si ds la collone E il y a : "action " ou "Obligation " alors je prend les collones H, G et N (dans ce fichier et pour une ligne J) que je copie dans un autre fichier en A, B et C.

Voici mon code :

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
Sub copy_tech()
 
'J'ouvre le fichier qui m'interesse
Workbooks.Open Filename:="T:\Arnaud Test VBA\Test World Invest\AINV REPORTS\0071006.CSV", local:=True
 
Dim cond1 As String
Dim cond2 As String
 
cond1 = "ACTION    "
cond2 = "OBLIGATION    "
 
Windows("0071006.CSV").Activate
 
' Je demarre la recherche de ma condition
For J = 1 To 400
d = J + 14
 
If Sheets("0071006").Cells(5, J).Value = cond1 Or Sheets("0071006").Cells(5, J).Value = cond2 Then
 
'Ici ca fonctionne pour les 6 premiers J après ca bug et ca me met erreur 9 : "indice non incluso nell'intervallo" = "index non inclus dans l'intervalle"
 
' Je prend la valeur en H8 du fichier "PRICE CHECK - WI.xls" et la copie dans Worksheets("TECH").Cells(d, 1) --> d ct pour eviter de chercher la dernier ligne 
 
    Cells(J, 8).Select
    Selection.Copy
    Windows("PRICE CHECK - WI.xls").Activate
    ActiveSheet.Paste Destination:=Worksheets("TECH").Cells(d, 1)
 
'pareil ici...
    Windows("0071006.CSV").Activate
    Cells(J, 7).Select
    Selection.Copy
    Windows("PRICE CHECK - WI.xls").Activate
    ActiveSheet.Paste Destination:=Worksheets("TECH").Cells(d, 2)
 
'pareil ici...    
    Windows("0071006.CSV").Activate
    Cells(J, 14).Select
    Selection.Copy
    Windows("PRICE CHECK - WI.xls").Activate
    ActiveSheet.Paste Destination:=Worksheets("TECH").Cells(d, 3)
 
   End If
 
 J = J + 1
 
Next J
 
End Sub
Bon ca marche pour deux lignes et après plus rien ...

Merci d'avance !

PS : si qq a des pb avec excel en italien je commence à maitriser