VB : macro qui lit la valeur de plusieurs cel

RIYANEMADRID -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
VB : macro qui lit la valeur de plusieurs cellule

Bonjour,

J'ai une feuille Excel avec des colonnes qui s'actualisent grâce à une requête que j'ai crée auparavant et une colonne appart la "BV" ou chaque cellule dans cette dernière contiens une vérification :
=SI(ET(ESTNA(RECHERCHEV(B2;Base!$A:$E;3;0));OU($J2<>0;$K2<>0;$L2<>0;$M2<>0;$N2<>0));"oui";"non")

et je voudrais crée une macro qui lit les "oui" et copie les cellule de la colonne "A" et "B" correspondant à mon "oui" et les copie dans une autre feuille
Comment faire, un peu sera nécessaire

PS : ma base contient un gros nombre de ligne allant jusqu'à 2000 et plus

Merci d'avance

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Macro à adapter à tes besoins (sheets, colonne des oui....) j'ai eu la flemme de trouver le n° de colonne BV :-)

    Const col As Byte = 4 'n° colonne des "oui"
    Sub oui_oui()
    
    Dim Nbre_oui As Integer, Lig As Integer
    Dim Tablo
    
    With Sheets(1)
        Nbre_oui = Application.CountIf(.Columns(col), "oui")
        ReDim Tablo(1 To Nbre_oui, 1 To 2)
        
        Lig = 1
        For cptr = 1 To Nbre_oui
            Lig = .Columns(col).Find("oui", .Cells(Lig, col)).Row
            Tablo(cptr, 1) = .Cells(Lig, 1)
            Tablo(cptr, 2) = .Cells(Lig, 2)
        Next
    End With
    
    Application.ScreenUpdating = False
    With Sheets(2)
        .Range("A2:B5000").ClearContents
        .Range("A2").Resize(Nbre_oui, 2) = Tablo
        .Activate
    End With
    
    End Sub
    1
    1. RIYANEMADRID Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
       
      merci ça m'aide beaucoup j'ai juste une petite question pour dire a ma macro de coller les données dans une colonne "A" par exemple mais dans la premiere cellule vide ; c'est-à-dire si il y a deja 1100 valeur quelle colle les valeurs a partir de la 1101 et ansi de suite parceque apres la deuxieme ou la troisime actualisation le nom de la cellule vide va changé et donc elle quelle la reconaisse elle meme
      merci infinement pour ton aide
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      modif pour 1° cellule vide de restitution

      With Sheets(2)
          derlig = .Range("A65536").End(xlUp).Row + 1
          .Cells(derlig, 1).Resize(Nbre_oui, 2) = Tablo
          .Activate
      End With
      0
    3. RIYANEMADRID Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
       
      J'utilise ce genre de code:

      With Worksheets("mafeuil")
      Selection.AutoFilter Field:=1, Criteria1:="oui"
      .Range("B2:B5000").Copy
      End With

      Et j'aimerai bien la suite pour coller a partir de la première cellule vide de la colonne A dans la feuil2
      Merci!
      0
    4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      OK, tu fais ce que tu veux...
      0
    5. RIYANEMADRID Messages postés 20 Date d'inscription   Statut Membre Dernière intervention  
       
      Oui mais j'attendais ton aide pour ça ?
      0