Papychou56
XLDnaute Nouveau
Bonjour à toutes et à tous.
Papy est encore bloqué...
Dans l'extrait de mon fichier ci-joint, je souhaiterai que lorsque j'ai sélectionné un mode de cuisson et une table avec les listes déroulantes de la feuille 1, le tableau de la feuille 2 se remplisse automatiquement à la correspondance du choix de la cuisson et de la table.
Par exemple, lorsque je sélectionne "Saignant" pour la cuisson et " Table 3", la cellule D5 me renvoie "10 minutes",lorsque je sélectionne "A point" pour la cuisson et " Table 2", la cellule E4 me renvoie "15 minutes", etc...
J'ai bien essayé avec "ActiveCell.Offset" mais je n'y arrive pas...
Débutant en VBA, j'ai sûrement pas encore tout compris....
Voici ce que j'ai réussi à faire:
Option Explicit
'Sélection de la table.
Sub table()
Dim plage As Range, cellule As Range, address As Range, add As Range, prime%, cel%
Dim VarValue%, der_ligne%
Dim CelValue%
Set cellule = Sheets("Feuil1").Range("A3")
Sheets("Feuil2").Activate
Set plage = Sheets("Feuil2").Range("B2:G2")
Set add = plage.Find(cellule, LookIn:=xlValues, LookAt:=xlWhole)
If Not add Is Nothing Then
MsgBox add.address
add.Select
End If
Call cuisson
Call celcui
Sheets("Feuil1").Activate
MsgBox VarValue
Sheets("Feuil2").Activate
CelValue = cel
MsgBox CelValue
End Sub
'Cuisson.
Public Sub cuisson()
Dim CuiValue$, der_ligne%, temps$, tps$, cui$
Sheets("Feuil1").Activate
temps = Cells(3, 1)
Select Case (temps)
Case "Tartare"
tps = 1 & " minute"
Case "Bleu"
tps = 5 & " minutes"
Case "Saignant"
tps = 10 & " minutes"
Case "A point"
tps = 15 & " minutes"
Case "Bien cuit"
tps = 20 & " minutes"
Case "Grillé"
tps = 25 & " minutes"
End Select
Sheets("Feuil2").Activate
CuiValue = tps
MsgBox CuiValue
End Sub
'Sélection de la cellule à remplir.
Public Sub celcui()
Dim cel$, cui%, CelValue$
Sheets("Feuil1").Activate
cel = Cells(3, 1)
Select Case (cel)
Case "Tartare"
cui = ActiveCell.Offset(0, 3).Value
Case "Bleu"
cui = ActiveCell.Offset(0, 4).Value
Case "Saignant"
cui = ActiveCell.Offset(0, 5).Value
Case "A point"
cui = ActiveCell.Offset(0, 6).Value
Case "Bien cuit"
cui = ActiveCell.Offset(0, 7).Value
Case "Grillé"
cui = ActiveCell.Offset(0, 8).Value
End Select
Sheets("Feuil2").Activate
CelValue = cui
MsgBox CelValue
End Sub
Précision: je travaille avec Excel 2007.
Merci d'avance.
Papy est encore bloqué...
Dans l'extrait de mon fichier ci-joint, je souhaiterai que lorsque j'ai sélectionné un mode de cuisson et une table avec les listes déroulantes de la feuille 1, le tableau de la feuille 2 se remplisse automatiquement à la correspondance du choix de la cuisson et de la table.
Par exemple, lorsque je sélectionne "Saignant" pour la cuisson et " Table 3", la cellule D5 me renvoie "10 minutes",lorsque je sélectionne "A point" pour la cuisson et " Table 2", la cellule E4 me renvoie "15 minutes", etc...
J'ai bien essayé avec "ActiveCell.Offset" mais je n'y arrive pas...
Débutant en VBA, j'ai sûrement pas encore tout compris....
Voici ce que j'ai réussi à faire:
Option Explicit
'Sélection de la table.
Sub table()
Dim plage As Range, cellule As Range, address As Range, add As Range, prime%, cel%
Dim VarValue%, der_ligne%
Dim CelValue%
Set cellule = Sheets("Feuil1").Range("A3")
Sheets("Feuil2").Activate
Set plage = Sheets("Feuil2").Range("B2:G2")
Set add = plage.Find(cellule, LookIn:=xlValues, LookAt:=xlWhole)
If Not add Is Nothing Then
MsgBox add.address
add.Select
End If
Call cuisson
Call celcui
Sheets("Feuil1").Activate
MsgBox VarValue
Sheets("Feuil2").Activate
CelValue = cel
MsgBox CelValue
End Sub
'Cuisson.
Public Sub cuisson()
Dim CuiValue$, der_ligne%, temps$, tps$, cui$
Sheets("Feuil1").Activate
temps = Cells(3, 1)
Select Case (temps)
Case "Tartare"
tps = 1 & " minute"
Case "Bleu"
tps = 5 & " minutes"
Case "Saignant"
tps = 10 & " minutes"
Case "A point"
tps = 15 & " minutes"
Case "Bien cuit"
tps = 20 & " minutes"
Case "Grillé"
tps = 25 & " minutes"
End Select
Sheets("Feuil2").Activate
CuiValue = tps
MsgBox CuiValue
End Sub
'Sélection de la cellule à remplir.
Public Sub celcui()
Dim cel$, cui%, CelValue$
Sheets("Feuil1").Activate
cel = Cells(3, 1)
Select Case (cel)
Case "Tartare"
cui = ActiveCell.Offset(0, 3).Value
Case "Bleu"
cui = ActiveCell.Offset(0, 4).Value
Case "Saignant"
cui = ActiveCell.Offset(0, 5).Value
Case "A point"
cui = ActiveCell.Offset(0, 6).Value
Case "Bien cuit"
cui = ActiveCell.Offset(0, 7).Value
Case "Grillé"
cui = ActiveCell.Offset(0, 8).Value
End Select
Sheets("Feuil2").Activate
CelValue = cui
MsgBox CelValue
End Sub
Précision: je travaille avec Excel 2007.
Merci d'avance.