Macro copier tableau avec plusieurs critères

Macro copier tableau avec plusieurs critères - VB/VBA/VBS - Programmation

Marsh Posté le 25-06-2015 à 14:13:11    

Bonjour à tous,
 
Je vous explique mon problème :
J'ai un tableau dans un onglet "Questions". J'aimerais copier, à partir d'une macro, automatiquement, ce tableau dans un onglet "Questionnaire" en fonction de plusieurs critères :
- colonne B = Principal / Detailed
- Colonne C = Key / Others
- Colonne M = Y / N
 
J'arrive à copier mon tableau lorsqu'il n'y a qu'un seul critère (fichier ci-joint), mais je n'arrive pas à adapter mon code lorsque j'ai besoin de prendre en compte plusieurs critères.
 
fichier : https://www.dropbox.com/s/46sdza1qd [...] e.xls?dl=0  
 
Merci beaucoup pour votre aide !

Reply

Marsh Posté le 25-06-2015 à 14:13:11   

Reply

Marsh Posté le 25-06-2015 à 14:50:42    

 
           Bonjour,
 
           utiliser les filtres ou un filtre avancé …
 

Reply

Marsh Posté le 25-06-2015 à 15:00:03    

Le but est de ne pas avoir à intervenir sur le tableau par les filtres et de le recopier automatiquement, avec les bons critères

Reply

Marsh Posté le 25-06-2015 à 15:17:39    

 
           Comme les filtres simplifient le code, sont redoutables d'efficacité et désactivables, dommage de s'en passer !
           Sinon c'est l'usine à gaz classique : boucle pour parcourir les lignes, tests conditionnels puis copie …
 
           Conformément aux règles de ce forum, merci de poster le code entrepris via l'icône dédiée pour le baliser.
 
 

Reply

Marsh Posté le 25-06-2015 à 15:54:25    

Voici pour l'instant mon code, qui ne me permet que de prendre en compte un seul critère :
 

Code :
  1. Sub Bouton1064_Cliquer()
  2. Dim Lig     As Long
  3.   Dim Col     As String
  4.   Dim NbrLig  As Long
  5.   Dim NumLig  As Long
  6.  
  7.   Sheets("First" ).Activate 'feuille de destination
  8.  
  9.   Col = "M"                 ' colonne données non vides à tester'
  10.   NumLig = 6          'alors là ca doit etre le N° de la 1er ligne de données en comptant la ligne 1 = 0 .... ? '
  11.   With Sheets("Questions" )     ' feuille source'
  12.   NbrLig = .Cells(65536, Col).End(xlUp).Row
  13.   For Lig = 6 To NbrLig             'n° de la 1ere ligne de données'
  14.     If .Cells(Lig, Col).Value <> "N" Then
  15.       .Cells(Lig, Col).EntireRow.Copy
  16.       NumLig = NumLig + 1
  17.       Sheets("First" ).Cells(NumLig, 1).Insert Shift:=xlDown
  18.             'ici pour insérer ou  .Paste pour coller'
  19.     End If
  20.   Next
  21.   End With
  22. End Sub


 
J'aimerais juste savoir comment intégrer plusieurs critères, ou conditions, à ce code s'il vous plait ?

Reply

Marsh Posté le 25-06-2015 à 17:28:07    

 
           Soit avec une cascade de lignes de code  If … Then
 
           soit en combinant au sein de la ligne If … Then les conditions avec les opérateurs  And  /  Or  (cf aide VBA) …
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed