Macro combinant une rechercheH et rechercheV dans un tableau

Résolu/Fermé
kamal - 3 juil. 2013 à 16:17
 kamal - 4 juil. 2013 à 14:00
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 :(
A voir également:

2 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 juil. 2013 à 07:32
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
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 juil. 2013 à 10:17
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
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
4 juil. 2013 à 10:55
feuille 2 , tu as dans les colonnes F1:Q2 des N° ref et BA: que faut il metrre dans les lignes jaunes correspondantes
0
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
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 4/07/2013 à 12:19
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