Bonjour tout le monde :
En fait , je suis un peu débutant en VBA et j'ai besoin de votre aide . Il y a 3 jours , j'ai poster un truc pareil à celui là .
Dans un classeur1 ( où le code existe) , dans la feuille "marketing" j'ai un tableau qui commence à partir de la ligne 6 qui contient 5 colonnes ( date , maturité , taux 1 , taux 2 , taux3 ) , et dans un classeur2 j'ai plusieurs feuilles , chacune correspond à une maturité ( "52 W" , "2 ans" , "10 ans" , .... ) .
ce que je veux c'est que lorsque je saisi une date et une maturité et un taux 1 dans le tableau de la feuille "marketing" du classeur1 , le programme active (choisit) la feuille dans le classeur2 qui correspond à la maturité saisie dans la feuille "marketing" du classeur1 ,et il me cherche un taux2 et un taux3 qui correspondent à une date et un taux1 que j'ai saisie dans la feuille "marketing" du classeur1.

Je suis encore entrain de faire la code, j'ai définis des variables "wsExcel" et "wbExcel" comme étant respectivement un worksheet et un workbook ( voir le code) et aussi une variable "lo" pour déterminer la position à partir de laquelle je remplie mon tableau du classeur1 .
la valeur de cellule b1 dans le classeur2 change selon la maturité ( feuilles classeur2 ) .

Mon problème c'est que dans la dernière ligne je veux normalement écrire un truc comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
wsExcel.Range("b1").Value = d
( wsExcel doit correspondre à une feuille de maturité ) mais la cellule b1 existe dans toutes les feuilles du classeur2 , et le choix de la feuille change selon ce qu'on a choisit dans maturité dans le classeur 1 , c'est dire je veux la valeur de la cellule b1 mais selon le résultat de "Select Case " . comment attribuer à la cellule b1 l'objet " worksheet" selon notre choix de la feuille maturité ? Aidez moi Svp et merci .
Le code :
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
Dim d As Date
Dim s As String
Dim lo As Integer
lo = Range(Range("a6"), Range("a6").End(xlDown)).Count
lo = lo + 6
s = Range("C", lo).Value
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'Coorespond au classeur2
Set wbExcel = Workbooks("classeur2")
 
 
Select Case s
Case Is = "52s"
    wbExcel.Worksheets("52 W").Activate
Case Is = "2A"
    wbExcel.Worksheets("2 ans").Activate
Case Is = "5A"
    wbExcel.Worksheets("5 ans").Activate
Case Is = "10A"
  wbExcel.Worksheets("10 ans").Activate
Case Is = "15A"
    wbExcel.Worksheets("15 ans").Activate
Case Is = "20A"
   Worksheets("20 ans").Activate
Case Is = "30A"
    wbExcel.Worksheets("30 ans").Activate
End Select
d = Range("A", lo).Value
 
Range("b1").Value = d