Bonjour,
Pouvez vous m'aider à résoudre mon problème de macro.
Sur un ancien document j'utilisait cette macro mais elle fonctionnait sur plusieurs feuille, maintenant j'en utilise qu' une seule.
Je souhaite faire une recherche selon un critère "oui" dans ma plage de cellule
(A : D), si dans la colonne D il y a une cellule = oui alors je met le résultat dans ma plage (F:H)
un exemple en pièce jointe pret à recevoir votre aide
merci
ma macro
Pouvez vous m'aider à résoudre mon problème de macro.
Sur un ancien document j'utilisait cette macro mais elle fonctionnait sur plusieurs feuille, maintenant j'en utilise qu' une seule.
Je souhaite faire une recherche selon un critère "oui" dans ma plage de cellule
(A : D), si dans la colonne D il y a une cellule = oui alors je met le résultat dans ma plage (F:H)
un exemple en pièce jointe pret à recevoir votre aide
merci
ma macro
Code:
Option Explicit
Option Compare Text
Sub test()
On Error Resume Next
Dim Ws As Worksheet, x As Variant, i As Integer, j As Integer, k As Integer, T As Variant, T1() As String, n As Variant
n = ActiveSheet.Name
Application.ScreenUpdating = False
Columns("e:f").ClearContents
For Each Ws In Worksheets
If Ws.Name <> "Feuil1" Then
Worksheets(Ws.Name).Activate
T = Range("A3:c" & Range("b65536").End(xlUp).Row)
x = 1
For i = 1 To UBound(T)
For j = 2 To 2
If T(i, j) = "oui" Then
ReDim Preserve T1(1 To 2, 1 To x)
For k = 1 To 2
T1(k, x) = T(i, k)
Next k: x = x + 1: End If: Next j: Next i
Sheets("Feuil1").Range("a65536").End(xlUp).Offset(1, 0).Resize(UBound(T1, 2)) = [b3]
Sheets("Feuil1").Range("b65536").End(xlUp).Offset(1, 0).Resize(UBound(T1, 2), UBound(T1, 1)) = Application.Transpose(T1)
Erase T, T1: End If: Next Ws: Sheets(n).Activate
End Sub
Pièces jointes
Dernière édition: