VB : macro qui lit la valeur de plusieurs cel

Fermé
RIYANEMADRID - 30 juin 2010 à 15:35
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 1 juil. 2010 à 15:02
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
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
30 juin 2010 à 17:08
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
RIYANEMADRID Messages postés 18 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 6 octobre 2013
30 juin 2010 à 17:22
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
30 juin 2010 à 17:49
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
RIYANEMADRID Messages postés 18 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 6 octobre 2013
Modifié par RIYANEMADRID le 1/07/2010 à 14:19
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
1 juil. 2010 à 14:04
OK, tu fais ce que tu veux...
0
RIYANEMADRID Messages postés 18 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 6 octobre 2013
1 juil. 2010 à 14:50
Oui mais j'attendais ton aide pour ça ?
0