Bonjour,
J'ai créé ce bout de 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
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
100
101
 
  Dim Demandeur As String
    Dim Service As String
    Dim Date_Enregistrement As Date
    Dim Projet As String
    Dim N_Enregistrement As Long
    Dim Ma_Var As Variant
    Dim Analyse_1 As Variant
    Dim Analyse_2 As Variant
    Dim Analyse_3 As Variant
    Dim Analyse_4 As Variant
    Dim Analyse_5 As Variant
    Dim Analyse_6 As Variant
    Dim Analyse_7 As Variant
    Dim Analyse_8 As Variant
    Dim Analyse_9 As Variant
    Dim Analyse_10 As Variant
    Dim Cell_ref As Range
    Dim N_Ligne As Long
    Dim Ma_Select_2 As Range
 
 
 
'Procédure permettant de récupérer toutes les données pour le transfert dans le fichier base
 
Public Sub Recup_Donnees()
 Demandeur = Range("C4").Value
    Service = Range("C5").Value
    Date_Enregistrement = Range("C7").Value
    Projet = Range("C6").Value
    Analyse_1 = ""
    Analyse_2 = ""
    Analyse_3 = ""
    Analyse_4 = ""
    Analyse_5 = ""
    Analyse_6 = ""
    Analyse_7 = ""
    Analyse_8 = ""
    Analyse_9 = ""
    Analyse_10 = ""
 
 
For Each Cell_ref In Range("Reference")
    If Cell_ref.Value <> "" Then
        N_Ligne = Cell_ref.Row
        Call Recup_Analyse
        Call Enregistremen_Base
    End If
Next Cell_ref
 
 
End Sub
 
Public Sub Recup_Analyse()
 
 'Sélection de la plage pour vérification des analyses demandées
 
 Set Ma_Select_2 = Sheets("Formulaire").Range("D" & N_Ligne & ": M" & N_Ligne)
 i = 1
 
 For Each Cell In Ma_Select_2
    If Cell.Value = "O" Then
       N_Col = Cell.Column
 
      Select Case i
        Case 1
            Analyse_1 = Range(Cells(4, N_Col)).Value
 
       Case 2
            Analyse_2 = Range(Cells(4, N_Col)).Value
 
        Case 3
            Analyse_3 = Range(Cells(4, N_Col)).Value
 
        Case 4
            Analyse_4 = Range(Cells(4, N_Col)).Value
 
        Case 5
            Analyse_5 = Range(Cells(4, N_Col)).Value
 
        Case 6
            Analyse_6 = Range(Cells(4, N_Col)).Value
 
        Case 7
            Analyse_7 = Range(Cells(4, N_Col)).Value
 
        Case 8
            Analyse_8 = Range(Cells(4, N_Col)).Value
 
        Case 9
            Analyse_9 = Range(Cells(4, N_Col)).Value
 
        Case 10
            Analyse_10 = Range(Cells(4, N_Col)).Value
    End Select
       i = i + 1
    End If
Next Cell
 
 
End Sub
mais je ne comprends pas 2 choses :
- tout d'abord, il ne veut pas que je mette mes variable Analyse_1,... en tant que variable String : Pourquoi??

-Lorsque je lance le code, ca commence bien car je récupère bien ma première valeur Analyse_1 mais la seconde boucle message d'erreur "La méthode 'Range' de l'objet '_Global' a échoué "

Pourquoi d'après vous?
Merci d'avance
Fred