Hello tout le monde,
Mon but serait de remplacer une macro excel qui tourne pendant 5h chaque jour en code sql.
Données:
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"
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
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):
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):
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 :
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 :
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 :
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_ID2"
ActiveCell.Offset(1, 0).Range("A1").Select
Loop |
Un immense immense immense merci à celle ou celui qui pourra m'aider.
Partager