Hello tout le monde,

Mon but serait de remplacer une macro excel qui tourne pendant 5h chaque jour en code sql.

Données:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TABLE 1 
- Colonne 1 = T1_ID
- Colonne 2 = c1
- Colonne 3 = c2
- Colonne 4 = c3
*c = "critère de recherche"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
TABLE 2
- Colonne 1 = i1
- Colonne 2 = i2
- Colonne 3 = i3
- Colonne 4 = i4
*i = "information"

Le but serait donc pour chaque ligne de la Table2 de trouver le T1_ID correspondant suivant plusieurs critères
Aussi, suivant le critère de recherche qui a donné un résultat, il faudrait que le numéro de ce dernier soit repris en colonne 6
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
[a] si c1 dans i1 then Colonne5 = T1_ID And Colonne6 = "a"
[b] si c1+c2 dans i1 + c3 dans i3 then Colonne5 = T1_ID And Colonne6 = "b"
[c] si c1+c2-c3 dans i1 then Colonne5 = T1_ID And Colonne6 = "c"
Exemple:

TABLE 1 (voitures):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
MODELE         ORIGINE         MOTEUR        COULEUR 
 
Peugeot Ext    France          Diesel        Bleu
Rover 75       Italie          Essence       Rouge   
Citroën  C4    Allemagne       Essence       Vert


TABLE 2 (informations trouvées):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
I1                 I2                         I3                           I4                
 
Ma voiture verte   Elle roule avec essence    Une Rover 75 superbe         Achetée en Italie

Ce qui donne après recherche l'ajout des 2 dernières colonnes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
I1                 I2                         I3                           I4                    ID       LEVEL
 
Ma voiture verte   Elle roule avec essence    Une Rover 75 superbe         Achetée en Italie     5482     D
Elle a donc résussis sur le critère D :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
if i1 like "*verte*" And i2 like "*essence*" And i3 Like "*Rover 75*" And i4 Like "*Italie*" Then i5 = "*5482*" And i6 = "D"


En Excel, j'utilise ce genre de chose :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Range("A1").Select
Do While ActiveCell.Value <> Empty
ActiveCell.Offset(0, 0).Range("A1").Select
 
If Selection.Value Like "*c1*" And Not Selection.Value Like "*c2*" Then: ActiveCell.Offset(0, 6).Range("A1").Value = "T1_ID‡2"
 
ActiveCell.Offset(1, 0).Range("A1").Select
Loop
Un immense immense immense merci à celle ou celui qui pourra m'aider.