Création d'une macro de recherche dans une table

  • Initiateur de la discussion Initiateur de la discussion drareg78
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

drareg78

Guest
Bonjour aux membres du forum.

Je cherche désespérément à créer une macro qui permettrait, après recherche dans une table en feuil1, de créer une liste en fonction d'un critère, et recopier celle ci en feuil2. Pour plus de clarté, je vous joint mon fichier exemple.

Meci de votre aide
 

Pièces jointes

Re : Création d'une macro de recherche dans une table

Bonjour drareg78,

Ceci semble correspondre à ta demande :
Code:
Sub Automatique()
Dim TabloD, TabloA(), k As Long, y As Long
TabloD = Sheets("Feuil1").Range("A9:C" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
For k = LBound(TabloD, 1) To UBound(TabloD, 1)
   If TabloD(k, 3) = UCase("X") Then
       ReDim Preserve TabloA(2, 0 To y)
       TabloA(0, y) = TabloD(k, 1)
       TabloA(1, y) = TabloD(k, 2)
       TabloA(2, y) = TabloD(k, 3)
       y = y + 1
   End If
Next
With Sheets("Feuil2")
   .Range("B7:B" & .Range("B65536").End(xlUp).Row).ClearContents
   For k = LBound(TabloA, 2) To UBound(TabloA, 2)
     .Cells(k + 7, 2) = TabloA(0, k)
   Next
End With
End Sub

Bonne journée
A+
 
Re : Création d'une macro de recherche dans une table

Bonjour drareg78,

Ceci semble correspondre à ta demande :
Code:
Sub Automatique()
Dim TabloD, TabloA(), k As Long, y As Long
TabloD = Sheets("Feuil1").Range("A9:C" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
For k = LBound(TabloD, 1) To UBound(TabloD, 1)
   If TabloD(k, 3) = UCase("X") Then
       ReDim Preserve TabloA(2, 0 To y)
       TabloA(0, y) = TabloD(k, 1)
       TabloA(1, y) = TabloD(k, 2)
       TabloA(2, y) = TabloD(k, 3)
       y = y + 1
   End If
Next
With Sheets("Feuil2")
   .Range("B7:B" & .Range("B65536").End(xlUp).Row).ClearContents
   For k = LBound(TabloA, 2) To UBound(TabloA, 2)
     .Cells(k + 7, 2) = TabloA(0, k)
   Next
End With
End Sub

Bonne journée
A+
Merci bqtr c'est exactement ce que je cherchais. Je dois maintenant m'atteler à la compréhension de ta macro et là c'est pas gagné.

Merci encore
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour