Bonjour à tous!

Je viens vers vous car je suis bloqué...

A partir de deux plage Excel je créer 2 tableaux, je rempli mes tableaux, tout vas bien^^
Le problème c'est que je ne sais pas les utiliser.

Mon 1er tableau :

Tab_ref il correspond à la cellule D1 à SJ1 (500 colonnes). Dans ces cellule sont écrit des valeur qui me servent de référence, exemple 9001 en cellule G1

Mon 2eme tableau

Tab_valeur il correspond à la cellule D7 à SJ... Dans ce tableau sont stocké des données.

Les deux tableaux ont le même nombre de colonnes.


Est_il possible de faire, par exemple, la recherche de la valeur 9001 dans le tableau Tab_ref et de stocker le numéro de colonne du tableau Tab_ref où est rangé 9001?

Dans Excel je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
 
'cherche la colonne "N° du plan" dans la configuration PLC
Rows("1:1").Select
Selection.Find(What:="9001", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
index_col = ActiveCell.Column
Est_il possible de faire la même chose avec mon tableau Tab_ref?

voici le VBA que j'ai commencé a écrire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
Sub Tableaux_Virtuel()
'Macro qui permet de mettre PLCconfiguration dans un tableau virtuel
 
 
Dim Tab_ref As Variant
Dim tab_valeur As Variant
 
Dim row_fin As Integer
Dim col_fin As Integer
Dim l As Integer
Dim k As Integer
 
 
'####créer un classeur temporaire en copiant la configuration PLC
 
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
Workbooks.Add 'Créer un classeur Excel
temp = ActiveWorkbook.Name 'Nomme le nouveau classeur "temp"
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 
Cells.Replace What:="0.1", Replacement:="'0.10", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="0.2", Replacement:="'0.20", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="0.3", Replacement:="'0.30", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="0.4", Replacement:="'0.40", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="0.5", Replacement:="'0.50", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
Cells.Replace What:="0.6", Replacement:="'0.60", LookAt:=xlWhole, SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, ReplaceFormat:=False
 
 
'Détemine la dernière ligne pleine
row_fin = Cells(Cells.Columns.Count, 4).End(xlUp).Row
'Détemine la dernière colonne pleine
col_fin = Cells(1, Cells.Columns.Count).End(xlToLeft).Column
 
''Créer un tableau 2 dimentions.
'ReDim TabPLC(row_fin, col_fin)
 
Tab_ref = Range(Cells(1, 4), Cells(1, col_fin))
 
tab_valeur = Range(Cells(8, 4), Cells(row_fin, col_fin))
 
'ferme le classeur temporaire sans les sauver
Workbooks(temp).Close SaveChanges:=False
'vide le presse-papier
Application.CutCopyMode = False
 
End Sub
Merci d'avance pour votre aide