Bonjour,

Je bloque sur fonction VBA, qui est "censée" me permettre après la saisie d'une condition sur un formulaire, de copier un ensemble de lignes d'une feuille puis de le coller sur une autre feuille.

L'idée est de boucler sur les lignes qui m’intéressent de la feuille2 pour tester si la valeur de sélectionnée sur le formulaire correspond à celle de la première cellule de la ligne.
Lorsque la valeur de la ligne correspond à ma condition je souhaite copier cette ligne sur la feuille1.
C'est à cet endroit où je bloque. Je ne sais pas ce qu'il faut mettre dans "Range" pour que la ligne soit copiée.

Voici mon 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
Private Sub CommandButton1_Click()
 
Dim a, b As Range
Dim test As Integer
Dim address1 As String
Dim formattedAddress As String
 
Set a = Sheets("Feuil2").Range("C6:E25")
 
For Each b In a.Rows
    test = b.Cells(a.Row, 1).Value
    SelectedValue = ComboBox1.Value
    address1 = b.Address
    'formattedAddress = Chr(34) & address1 & Chr(34)
 
    If test = SelectedValue Then
        'Sheets("Feuil1").Range(b.Address) = Sheets("Feuil2").Range(b.Adress)
        'Sheets("Feuil2").Range("$C$6:$E$6").Copy
        'Sheets("Feuil1").Range("$C$6:$E$6").Paste
        Sheets("Feuil1").Range(formattedAddress).Value = Sheets("Feuil2").Range(formattedAddress).Value
    End If
 
Next
 
End Sub
J'ai mis l'adresse en dur et ça fonctionne sans problèmes.. pour une ligne
J'ai essayé de mettre l'adresse du rang en question en tant que string dans range mais ça ne semble pas fonctionner. D'après ce que j'ai compris les doubles quotes sont nécessaires.

Avez-vous une solution ou une idée ?

Merci