hello le forum !

j'ai un p'tit souci :
Je travail sur plusieurs classeurs à la fois dans ma macro, mais la voici

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
 
 
Dim nom_FPD As String 'nom du classeur contenant le fichier FPD
 
Dim nom_outils_devis As String
 
Dim col_tab_fin As Integer
 
Dim L_tab_fin As Integer
 
Dim L_tab As Integer
 
Dim col_ordre As Integer
 
Dim col_annee_FPD_2 As Integer
 
Dim annee_FPD_2 As Long
 
Dim NbOrdonne As Integer
 
 
nom_outils_devis = "devis_1.xlsm"
 
 
nom_FPD = "ref__1.xlsx"
 
 
 
 
annee_FD_2 = annee_FPD(nom_FPD) 'appel d'une fonction
 
col_tab_fin = Workbooks("Table de conversion.xlsm").Worksheets("Feuil1").Cells(2, 1).End(xlToRight).Column
 
col_annee_FD_2 = col_annee_FPD((col_tab_fin), (nom_FPD), (annee_FPD_2)) 'appel de fonction
 
L_tab_fin = Workbooks("Table de conversion.xlsm").Worksheets("Feuil1").Cells(39, col_annee_FPD_2).End(xlUp).Row 
NBservices = L_tab_fin
 
NbOrdonne = 0
 
 
 
For L_tab = 2 To L_tab_fin
 
    If Workbooks("Table de conversion.xlsm").Worksheets("Feuil1").Cells(L_tab, col_tab_fin + 1) = Empty Then
 
    Else
 
        NbOrdonne = NbOrdonne + 1
 
        col_ordre = Workbooks("Table de conversion.xlsm").Worksheets("Feuil1").Cells(L_tab, col_tab_fin + 1).Value
 
        Workbooks(nom_outils_devis).Worksheets("Feuil1").Cells(13, col_ordre).Value = Workbooks("Table de conversion.xlsm").Worksheets("Feuil1").Cells(L_tab, col_tab_fin).Value
 
 
        Workbooks(nom_outils_devis).Worksheets("Feuil1").Range(Cells(13, col_ordre), Cells(14, col_ordre)).Select
 
        Columns(col_ordre).ColumnWidth = 20
 
        Selection.Font.Size = 12
 
        Selection.Merge       
 
    End If
 
Next L_tab
Bizarrement, quand je l'ai écrite, tout fonctionnait bien, plusieurs fois avec réinitialisation des classeurs. J'ai fermé tout mes classeurs, je les ai réouvert tels qu'ils était, et la macro s'arretait sur la ligne avec le select, avec pour erreur : '1004' ereur définie par l'application ou par l'objet.
Grâce à ce forum, modifié :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Workbooks(nom_outils_devis).Worksheets("Feuil1").Range(Cells(13, col_ordre), Cells(14, col_ordre)).Select
 
        Columns(col_ordre).ColumnWidth = 20
 
        Selection.Font.Size = 12
 
        Selection.Merge
en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Workbooks(nom_outils_devis).Worksheets("Feuil1").Range(Cells(13, col_ordre), Cells(14, col_ordre)).font.size=12
Workbooks(nom_outils_devis).Worksheets("Feuil1").Range(Cells(13, col_ordre), Cells(14, col_ordre)).merge
        Columns(col_ordre).ColumnWidth = 20
sans plus de résultat, malgré que ma macro ai fonctionnée accordément à mon code avant la fermeture des classeurs.

autre petite question : faut il toujrs déclarer la variable du compteur dans une boucle for par ex, en sachant que je n'aurais jamais besoin d'un long par ex ?

Je suis pas très douée en vba, je débute un peu mais je ne comprend pas trop l'erreur

qq'un pour m'aider svp ?