Macro combinant une rechercheH et rechercheV dans un tableau

Résolu
Bonjour tout le monde,

SVP est ce que quelqu'un pourra m'aider à trouver une macro qui peut croiser une recherche vertical et horizontale un peut plus avancer?

voila ce que je souhaite faire:
feuil1 : un tableau de B2 à GZ100
feuil2 : ligne à remplir de H7 à AC7, H14 à AC14, en incrémentant par 7 jusqu'a H69 à AC69

les valeurs à rechercher sont des cellules dans la feuil2:
A5 (elle prend ses valeurs sous forme de liste située à la colonne B de la feuil1)
G6 (elle prend ses valeurs sous forme de liste située à la ligne 2 de la feuil1)

et donc il faudrait remplir les lignes cités ci-dessus automatiquement à chaque fois que je change A5 feuil2 ou G6 feuil2 ou les deux à la fois.

Merci infiniment par avance pour votre aide. je galère depuis des semaines sans résultats :(

2 réponses

  1. Contributeur
    Bonjour,

    Très difficile à comprendre: dis toi bien que l'on a que ce que tu écris pour proposer quelque chose

    au passage
    H7 à AC7, H14 à AC14, en incrémentant par 7 jusqu'a H69 à AC69
    69: t'es sûr (69/7=9,857....)?

    au besoin:
    mettre le classeur sans données confidentielles en pièce jointe sur
    https://www.cjoint.com/
    puis copier l'adresse du lien et la coller dans le message de réponse
    0
    1. Bonjour michel_m,

      voila j'ai crée un fichier excel simplifier avec moins de colonnes de lignes. et j'ai expliqué ce qu'il faut faire dans le fichier par des bulles :)

      Merci par avance pour ton aide.

      http://cjoint.com/?CGejQt2VVPJ
      0
      1. Contributeur
        re,

        dans la feuille2 , quelle est l'influence des ref et/ou ba sur le remplissage des lignes jaunes

        tu parlais de ligne 7, 14.... ?
        0
      2. j'ai pas très bien compris ce que tu veux dire par "l'influence des ref".... ??

        les lignes qu'il faut remplir sont en jaune : ligne 5, ligne 12, jusqu'a ligne 67
        0
      3. Contributeur
        feuille 2 , tu as dans les colonnes F1:Q2 des N° ref et BA: que faut il metrre dans les lignes jaunes correspondantes
        0
      4. aaah j'ai compris :). on s'en fou de ces colonnes pour l'instant, c'est des références dans d'autres tableau qui seront rechercher dans d'autres feuilles....

        en gros si j'arrive à résoudre le problème cité avant, je n'aurai qu'a refaire une macro et l'adapter pour ça..
        0
      5. Contributeur
        la macro se trouve dans le module feuil2 de l'éditeur VBA
        https://www.cjoint.com/?3GemnZR9czc

        lorsque tu changes la formule, les matières inscrites dans C3:C13 renvoient leur valeur dans la ligne jaune colonne F
        lorsque tu changes une matière la nouvelle valeur est inscrite dans la ligne jaune colonne F

        nota: j'ai inscrit des valeurs bidons dans feuille 1pour essai
        si la macro ne démarre plus, lance la macro "reactiver_enableevents"

        la macro
        Option Explicit
        
        Private Sub Worksheet_Change(ByVal Target As Range)
        Dim Lig As Integer, Col As Integer, Cptr As Byte, Decal As Byte
        
        Application.ScreenUpdating = False
        
        'changement de formule
        If Not Intersect(Target, Range("B3")) Is Nothing And Target <> "" And Target.Count = 1 Then
                  On Error GoTo fin
                  Lig = Sheets(1).Columns("B").Find(Target, Sheets(1).Range("B2"), xlValues).Row
                  For Cptr = 3 To 13
                       If Cells(Cptr, "C") <> "" Then
                            Col = Sheets(1).Rows(2).Find(Cells(Cptr, "C"), Sheets(1).Range("B2"), xlValues).Column
                            Application.EnableEvents = False
                                 Cells(5 + Decal, "F") = Sheets(1).Cells(Lig, Col)
                            Application.EnableEvents = True
                       End If
                       Decal = Decal + 7
                  Next
        End If
        
        'changement de matière
        If Not Intersect(Target, Range("C3:C13")) Is Nothing And Target <> "" And Target.Count = 1 Then
                   Lig = Sheets(1).Columns("B").Find(Range("B3"), Sheets(1).Range("B2"), xlValues).Row
                   On Error GoTo fin
                  Col = Sheets(1).Rows(2).Find(Target, Sheets(1).Range("B2"), xlValues).Column
                  Decal = Columns("E").Find(Target, Range("E2"), xlValues).Row + 1
                  Cells(Decal, "F") = Sheets(1).Cells(Lig, Col)
        End If
        Exit Sub
        
        fin:
        MsgBox "Saisie incorrecte!", vbCritical
        End Sub
        
        '----------------------------------------
        Sub reactiver_enableevents()
        Application.EnableEvents = True
        End Sub
        
        0