Bonjour,
J'ai un projet à réaliser pour mes études, dans lequel j'ai besoin de réaliser une macro qui permet de déplacer des valeurs d'une cellule à une autre, le tout en fonction de la valeur contenue dans la cellule.
Je m'explique :
Dans la colonne G, il est possible de rentrer des chiffres allant de 1 à 12, l'objectif étant de faire déplacer les valeurs contenues dans la ligne correspondante (Id, durée prev, et degré d'urgence) dans un second tableau. En fonction de la valeur contenue dans la colonne G, les valeurs Id, durée prev et degré d'urgences se situent dans des tableaux différents (donc 12 au total).
La macro que j'ai essayé de réaliser est la suivante :
Lorsque je clique sur le bouton déplacement, elle ne fonctionne pas et ne me renvoie aucun erreur.
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 Sub Deplacement() Dim wsSource As Worksheet Dim wsCible As Worksheet Dim derniereLigne As Integer Dim tmpLigne As Integer Dim i As Integer Dim b As Integer Dim derniereboucle As Integer Dim x As Integer Dim y As Integer Dim z As Integer Set wsSource = Worksheets("Planning") Set wsCible = Worksheets("Planning") tmpLigne = 2 derniereLigne = 101 derniereboucle = 12 For b = 1 To derniereboucle For i = 2 To derniereLigne 'Si la colonne G contient 1 If wsSource.Cells(i, "G").Value = "b" Then x = 15 + (b - 1) * 3 y = 14 + (b - 1) * 3 z = 16 + (b - 1) * 3 'On copie les Lignes qui nous interessent wsCible.Cells(wsSource.Cells(i, 8), x).Value = wsSource.Cells(i, 5).Value wsCible.Cells(wsSource.Cells(i, 8), y).Value = wsSource.Cells(i, 3).Value wsCible.Cells(wsSource.Cells(i, 8), z).Value = wsSource.Cells(i, 6).Value tmpLigne = tmpLigne + 1 End If Next i Next b End Sub
Pouvez vous m'aider ?
PS : Le fichier se trouve en pièce jointe.
Merci par avance !
Partager