bonjour Phil , Gérard et Juju
ci-dessous une adaptation pour que cela fonctionne avec un bouton de la boite à outils controles (il faut juste préciser le nom de la feuille pour chaque plage de cellules selectionnée )
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer
i = 11
j = 7
'i correspondant au 1er N° de ligne du tableau commence à la ligne 11
Sheets("Feuil2").Select
Sheets("Feuil2").Range("B7:B20").Select
Selection.ClearContents
Do While Len(Sheets("Feuil1").Cells(i, 2).Value) > 0
If Sheets("Feuil1").Range("A" & i) = "ok" Then
Sheets("Feuil1").Select
Sheets("Feuil1").Range("B" & i).Select
Selection.Copy
Sheets("Feuil2").Select
Sheets("Feuil2").Range("B" & j).Select
ActiveSheet.Paste
End If
If Sheets("Feuil1").Range("A" & i) = "ok" Then j = j + 1
i = i + 1
Loop
End Sub
sinon une autre version sur le meme principe de boucle "Do While" , mais sans Select et sans copier/coller
Private Sub CommandButton2_Click()
Dim i As Integer, j As Integer
i = 11
j = 7
'Range("A1").Select 'pour excel97
'i correspondant au 1er N° de ligne du tableau commence à la ligne 11
Sheets("Feuil2").Range("B7:B20").ClearContents
Do While Len(Sheets("Feuil1").Cells(i, 2).Value) > 0
If Sheets("Feuil1").Range("A" & i) = "ok" Then
Sheets("Feuil2").Range("B" & j) = Sheets("Feuil1").Range("B" & i)
j = j + 1
End If
i = i + 1
Loop
End Sub
et un autre principe de boucle…
Private Sub CommandButton3_Click()
Dim Cell As Range
Dim i As Integer
'Range("A1").Select 'pour excel97
Sheets("Feuil2").Range("B7:B20").ClearContents
'derniere cellule non vide dans la colonne A de la Feuil1
i = Sheets("Feuil1").Range("A65536").End(xlUp).Row
For Each Cell In Sheets("Feuil1").Range("A11:A" & i)
If Cell = "ok" Then _
Sheets("Feuil2").Range("B" & Sheets("Feuil2").Range("B65536").End(xlUp).Row + 1) = Cell.Offset(0, 1)
Next
End Sub
bonne journée
MichelXld