Macro combinant une rechercheH et rechercheV dans un tableau [Résolu/Fermé]

Signaler
-
 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

Messages postés
16367
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2021
3 112
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
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
Messages postés
16367
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2021
3 112
feuille 2 , tu as dans les colonnes F1:Q2 des N° ref et BA: que faut il metrre dans les lignes jaunes correspondantes
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..
Messages postés
16367
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
19 janvier 2021
3 112
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
Merci beaucoup!! la macro marche à merveille et c'est exactement ce que je cherchais.

par contre pour la modifier de façon à ce que ça inscrit les valeurs sur tte les colonnes (F, G, H..... de la feuil2) et non seulement la colonne F, je fais comment ?
aaaah c'est bon! je peux le faire avec excel lool
désolé je me sens con maintenant hhhh

Merci en tout cas pour votre aide :)