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 :
J'ai mis l'adresse en dur et ça fonctionne sans problèmes.. pour une ligne
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 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![]()
Partager