Macro pour recherche avec plusieurs valeurs

biboune1209

XLDnaute Nouveau
Bonjour,

je cherche à créer une macro de recherche, mais étant totalement novice dans le domaine des macros j'aurais besoin d'un petit coup de pouce !
voici mon problème :
j'ai un tableau à 56 lignes et 35 colonnes
la première colonne indique soit 1, soit 0
je voudrais créer une macro qui, à chaque fois qu'elle trouve le chiffre 1 dans la 1èere colonne, me renvoie sur une autre feuille déjà existante qui s'appelle "Synthèse", sous forme de tableau, les valeurs contenues dans les colonnes 15, 18, 22 , 27 et 30 (sachant qu'il s'agit en majorité de texte, mais aussi de dates ou de nombres).
comment puis-je faire ?
la fonction recherchev ne fonction que sur une seule valeur, or j'ai beaucoup de 1 dans mon tableau.
Merci d'avance pour votre aide car je ne m'en sors pas !!
 

Etienne2323

XLDnaute Impliqué
Re : Macro pour recherche avec plusieurs valeurs

Salut biboune1209,

tu peux toujours essayer quelque chose comme ceci. Le code est détaillé pour que tu puisses comprendre chacune des lignes. Tu n'as qu'à l'insérer dans un module VBA. (ALT+F11 et insérer nouveau module)

Code:
'Tu n'auras qu'à changer les constantes ici si tu modifies le nom des onglets ou encore
'la ligne de départ du tableau.
Private Const CALCULS = "Tableau"
Private Const FEUILLE_SYTHESE = "Synthèse"
Private Const PremiereLigneTableau = 1

Sub test()

Dim DerniereLigneTableau As Long, DerniereLigneVide As Long
Dim Valeur15 As Variant, Valeur18 As Variant, Valeur22 As Variant, Valeur27 As Variant, Valeur30 As Variant

Application.ScreenUpdating = False 'Gèle l'écran pendant l'exécution de l'opération

Sheets(CALCULS).Select 'Sélectionne la feuille contenant le tableau
DerniereLigneTableau = Cells(65536, 1).End(xlUp).Row 'Détermine la dernière ligne du tableau

For i = PremiereLigneTableau To DerniereLigneTableau 'Crée une boucle sur tout le tableau
    Sheets(CALCULS).Select 'Sélectionne la feuille contenant le tableau
    If Cells(i, 1).Value = 1 Then 'Si la colonne cellule i de la colonne 1 contient le chiffre 1 alors
        Valeur15 = Cells(i, 15).Value 'On donne a des variables le contenu des cellules des colonnes recherchées
        Valeur18 = Cells(i, 18).Value
        Valeur22 = Cells(i, 22).Value
        Valeur27 = Cells(i, 27).Value
        Valeur30 = Cells(i, 30).Value
    
        Sheets(FEUILLE_SYTHESE).Select 'Sélectionne l'onglet Synthèse
        DerniereLigneVide = Cells(65536, 1).End(xlUp).Offset(1, 0).Row 'Détermine la ligne sur laquelle on peut inscrire l'info
        Cells(DerniereLigneVide, 1).Value = Valeur15 'Rempli l'onglet avec les valeurs des variables remplies plus haut.
        Cells(DerniereLigneVide, 2).Value = Valeur18
        Cells(DerniereLigneVide, 3).Value = Valeur22
        Cells(DerniereLigneVide, 4).Value = Valeur27
        Cells(DerniereLigneVide, 5).Value = Valeur30
    End If
Next i 'Passe à la prochaine ligne
        
End Sub

Bonne continuité.

Cordialement

Étienne
 

biboune1209

XLDnaute Nouveau
Re : Macro pour recherche avec plusieurs valeurs

Bonjour Etienne 2323,

merci beaucoup pour ton aide !

en revanche je n'arrive toujours pas à exécuter ma macro,
Voici ce que j’ai fait :


Private Const CALCULS = "export"
Private Const FEUILLE_SYNTHESE = "liste nominative"
Private Const PremiereLigneTableau = 5

Sub test()

Dim DerniereLigneTableau As Long, DerniereLigneVide As Long
Dim Valeur18 As Variant, Valeur22 As Variant, Valeur27 As Variant, Valeur30 As Variant

Sheets(CALCULS).Select
DerniereLigneTableau = Cells(65536, 57).End(xlUp).Row

For i = PremiereLigneTableau To DerniereLigneTableau
Sheets(CALCULS).Select
If Cells(i, 57).Value = 1 Then
Valeur38 = Cells(i, 18).Value
Valeur49 = Cells(i, 22).Value
Valeur44 = Cells(i, 27).Value
Valeur48 = Cells(i, 30).Value

Sheets(FEUILLE_SYNTHESE).Select
DerniereLigneVide = Cells(65536, 3).End(xlUp).Offset(1, 0).Row
Cells(DerniereLigneVide, 3).Value = Valeur18
Cells(DerniereLigneVide, 4).Value = Valeur22
Cells(DerniereLigneVide, 5).Value = Valeur27
Cells(DeniereLigneVide, 6).Value = Valeur30
End If
Next i

End Sub

Le chiffre 1 que je cherche est en fait situé dans la colonne 57. Dans le tableau de l’onglet ‘Liste nominative’ (FEUILLE_SYNTHESE), je voudrais que mes données commencent à s’inscrire dans la ligne 2, colonne 3.
J’ai du faire une erreur car quand j’exécute ma macro ‘test’, il ne se passe rien du tout :'(

Je ne suis vraiment pas douée lol
 

Discussions similaires

Réponses
40
Affichages
1 K

Statistiques des forums

Discussions
312 572
Messages
2 089 817
Membres
104 284
dernier inscrit
Yohan90