Macro combinant une rechercheH et rechercheV dans un tableau

Résolu
kamal -  
 kamal -
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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. kamal
     
    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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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. kamal
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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. kamal
       
      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. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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