Bonjour Ândré, Bams, le Forum
Oui je suis tout à fait d'accord avec toi Ândré, le Chocolat Belge est bien meilleur que le Chocolat Suisse.... Arf non c'est pas dans ce post !! lol
Non dans ce Post aussi je suis tout à fait d'accord avec toi, ici on ne
founit rien du tout rien que le mot m'exaspère !!! même de la part de mes managers !
Bon sinon plus sérieusement pour BAMS, déjà il faudrait connaitre ton niveau en VBA car ce que tu demandes n'est pas à la porté d'un débutant "premier niveau".....
Ce que je peux te conseiller pour commencer après avoir lu
notre Charte c'est une simple boucle For Each pour voir.... mais sur 5000 lignes çà va mouliner un bail si on doit scanner trois colonnes (les 3 critères) .... Si tu as un niveau un peu plus avancé on peut te conseiller de travailler sur des tableaux indexés séquentiellement, mais ce sera une autre histoire pour adapter ensuite si tu n'es pas familier avec la programmation...
Imaginons que tu aies ta Feuille "DP" constitué de 5 colonnes :
Colonne A = Nom
Colonne B = Prénom
Colonne C= Sexe
Colonne D = Region
Colonne E = Décision
Imaginon que dans une Feuille "Interface" tu renseignes tes trois Critères de Sélections
Cellule "A1" = Sexe
Cellule "A2" = Region
Cellule "A3" = Décision
Et que tu veuilles copier les données qui vont matcher avec les trois critères saisis en Feuille "Interface", vers une Feuille "Extraction"...
Tu dois faire déjà une produre comme ceci :
Sub Extraction()
Dim Cell As Range
Dim Plage As Range
Dim Crit1 As String, Crit2 As String, Crit3 As String
Dim L As Integer
Dim WS As Worksheet
Set WS = Sheets("DP")
Set Plage = WS.Range("A1:A" & WS.Range("A65536").End(xlUp).Row)
With Sheets("Interface")
Crit1 = .Range("A1")
Crit2 = .Range("A2")
Crit3 = .Range("A3")
End With
For Each Cell In Plage
If Cell.Offset(0, 2) = Crit1 And Cell.Offset(0, 3) = Crit2 And Cell.Offset(0, 4) = Crit3 Then
With Sheets("Extraction")
L = .Range("A65536").End(xlUp).Row + 1
Range("A" & L) = Cell
Range("B" & L) = Cell.Offset(0, 1)
Range("C" & L) = Cell.Offset(0, 2)
Range("D" & L) = Cell.Offset(0, 3)
Range("E" & L) = Cell.Offset(0, 4)
End With
End If
Next Cell
End Sub
Voilà déjà pour une base de départ... Bon Week End à Tous et Toutes
@+Thierry