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:
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.
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
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():
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 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
Malheureusement ça ne marche pas, auriez vous une idée pour résoudre mon problème? C'est assez urgent
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
Merci d'avance pour votre retour,
Cordialement,
Ben
Partager