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( 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 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part wsExcel.Range("b1").Value = d
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
Partager