Bonjour à tous,

Je suis nouveau sur le forum, donc je commence par me présenter.
Je suis Ben, et j'ai l'habitude de travailler avec VBA, cependant je bug sur le petit problème suivant qui très probablement est idiot


j'ai le code ci-dessous:

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
Option Explicit
 
Sub Secteurs()
 
 
Dim i As Integer
Dim a As Integer
 
 
For i = 2 To 1000
 
If Sheets("BDD").Range("D" & i).Value = Sheets("Accueil").Range("B15").Value Then
 
 
 
                            If Sheets("BDD").Range("D" & i).Value = "test" Then
 
                              Sheets("BDD").Range("A" & i).Copy
                              Sheets("Secteurs").Range("B" & i + 4 ).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("B" & i).Copy
                              Sheets("Secteurs").Range("C" & i + 4).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("C" & i).Copy
                              Sheets("Secteurs").Range("D" & i + 4).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("E" & i).Copy
                              Sheets("Secteurs").Range("E" & i + 4 ).Select
                              ActiveSheet.Paste
else if
 
end if
end if
next i
end sub
Donc en gros ce code vérifie si les cellules de l'onglet BDD et de l'onglet Acceuil sont égales, puis copie la cellule Ai de bdd dans l'onglet secteurs.


Pour simplifier ce code je souhaite créer une fonction pour faire le copier coller. Or j'ai un problème pour récupérer la valeur du compteur i


Pour ce faire je crée une fonction copiecolle():
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
Sub copiecolle(a)
Dim i As Integer
 
                              Sheets("BDD").Range("A" & i).Copy
                              Sheets("Secteurs").Range("B" & i + a).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("B" & i).Copy
                              Sheets("Secteurs").Range("C" & i + a).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("C" & i).Copy
                              Sheets("Secteurs").Range("D" & i + a).Select
                              ActiveSheet.Paste
 
                              Sheets("BDD").Range("E" & i).Copy
                              Sheets("Secteurs").Range("E" & i +  a).Select
                              ActiveSheet.Paste
 
end sub
et j'appelle cette fonction dans mon sub de base de la manière suivant:

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
Option Explicit
 
Sub Secteurs()
 
 
Dim i As Integer
Dim a As Integer
 
 
For i = 2 To 1000
 
If Sheets("BDD").Range("D" & i).Value = Sheets("Accueil").Range("B15").Value Then
 
 
 
                            If Sheets("BDD").Range("D" & i).Value = "Agriculture/Agroalimentaire" Then
 
   copiecolle (0)
 
                            ElseIf Sheets("BDD").Range("D" & i).Value = "Assurances" Then
 
 
                                copiecolle (32)
 
                            End If
End If
 
Next i         
 
 
 
End Sub
Malheureusement ça ne marche pas, auriez vous une idée pour résoudre mon problème? C'est assez urgent

Merci d'avance pour votre retour,

Cordialement,
Ben