Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres ActiveCell.Offset

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.
 

Fred0o

XLDnaute Barbatruc
Bonjour Papychou56

Avant de pouvoir te répondre sur une solution possible, j'ai a mon tour 2 questions a poser :
1 - Comment declenches-tu tes macros et laquelle doit-on déclencher ? (cuisson, table, celcui) ?
2 - Ou trouve-t-on les durées de cuisson en fonction des elements choisis ? (combien de minutes pour quelle cuisson sur une table donnée) ?
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour @Papychou56

et oui mais ça suscite aussi une autre question
tu a deux listes déroulantes
donc quand tu change la cuisson tu change alors la valeur de la table précédemment sélectionné dans l'autre feuille
exemple je choisi tartare et table2
dans la feuille j'aurais donc tartare pour table2

maintenant je choisi bleu et bien des ce changement la table2 va prendre la valeur bleu

revoir donc la conception du projet

il te faut donc un 3 ème contrôle(un bouton) qui lui s’exécutera après les deux sélection
sinon il va falloir jouer avec des variables et l’événement et c'est pas simple
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
456
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…