Bonjour à tous,

Je suis un très grand débutant en VBA?

J'essaie depuis quelques jours de faire en sorte que sous deux conditions excel copie automatiquement une ligne de 28 cellule d'une page ici "GPostes" feuille 4, sur la feuille deux nommé Plannings.

Je suis arrivé après avoir perdu de nombreux litre de sueur et quelques touffes de cheveux à force de m'arracher la tête ... à ceci (le code appartient à l'objet feuille 2) :

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
Sub mise_à_jour_postes()
 
    Dim i As Integer
    Dim GS As Range
    Dim PS As Range
    Dim DS As Range
 
    Set DS = (Sheets("Gpostes").Range("C5:AD5"))
    Set GS = (Sheets("Gpostes").Range("C9:AD9"))
    Set PS = (Sheets("Gpostes").Range("C13:AD13"))
 
i = 7
While i <= 68
    If Range("C" & i).Value = "Oui" Then
        If Range("C" & i + 1).Value = "Oui" Then
           DS.Select
            Selection.Copy
            Range("D" & i + 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    ElseIf Range("C" & i).Value = "Non" Then
        If Range("C" & i + 1).Value = "Oui" Then
            GS.Select
            Selection.Copy
            Range("D" & i + 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    ElseIf Range("C" & i).Value = "Oui" Then
        If Range("C" & i + 1).Value = "Non" Then
            PS.Select
            Selection.Copy
            Range("D" & i).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If
    Else
    End If
i = i + 2
Wend
End Sub
Il y a surement beaucoup plus simple, j'aimerai cependant comprendre pouruquoi ce bout de code ne marche pas et affiche: "erreur d'execution 1004 défini par l'objet ou l'appli" lorsqu'il essai d'executer une des ligne GS.select, DS.select ou PS.select?