Projet VBA petite question...??

julien renseignement

XLDnaute Nouveau
Bonjour,
vous trouverez ci-joint un projet en cours.
Lorsque vous le lancerez le petit programme sous VBA, tout n'est pas ordré car je jongle avec différentes versions,n'en tenez pas compte svp!
Le nom est la macro "sub_exo cellules nommées",ne tenez pas compte des autres

Bref, ce programme vous demande différentes configurations de chauffage.
A vous de rentrer le numéro pour ce qui vous convient.
Le programme ira chercher les différentes valeurs sur excel et les additionnent au fur et à mesure de ce que vous choisissez.

Ma question est:

Si le Client choisit la version Géothermique, et ensuite "chauffage et ECS indépendant" , je veux ajouter une variante qui s'affichera uniquement lorsqu'il demandera cette configuration.

C'est à dire, s'il rentre les numero 2, après 6 ou 7, ensuite 9, un Inputbox doit apparaître pour demander une version ( split ou monobloc). Vous verrez elle s'affiche déja. Sauf qu'elle s'affiche dans tous les autres cas...
Comment puis-je faire pour que ce inputbox s'affiche que dans le cas précis que je vous est cité??

Donc ma question est de savoir comment rajouter un Inputbox qui s'affiche que dans une configuration demandée et non tout le temps?


Je vous remercie pour d'avance pour l'aide que vous m'apporterez

Julien
 

Pièces jointes

  • Classeur1.xls
    106 KB · Affichages: 87
  • Classeur1.xls
    106 KB · Affichages: 85
  • Classeur1.xls
    106 KB · Affichages: 82

Gael

XLDnaute Barbatruc
Re : Projet VBA petite question...??

Bonjour Julien, Le forum,

Il suffit d'ajouter une condition:

Code:
If A = 2 And C = 9 Then
    E = InputBox("Pour ce choix d'ECS indépendant, nous vous conseillons d'utiliser un thermodynamique, deux variantes vous est proposées. Vous choisissez celle qui vous convient:   10- Version Split   11- Version Monobloc  ", "", 0)
        ...
  End If

Par ailleurs, tu peux simplifier la procédure, je te propose le code suivant qui sauf erreur ou omission devrait donner le même résultat:
Code:
Sub ex_1_cellule_nommées()
'données
    Dim A As Long, B As Long, C As Long, D As Long, E As Long, L As Integer, total_sec As Long, reponse As Long, inv As Long, retinv As Long, ta
    
'entrée des données
    A = InputBox("Vous avez le choix entre ces différents systèmes de chauffage, veuillez tapez le numero qui vous convient:                                                                                        1- Aérothermie                                                               2- Géothermie                                                                3- Chaudière gaz condensation                                   4- Chaudières condensation fioul                               5- Chaudières Bois", "", 0)
    inv = 0
    retinv = 0
    
    B = InputBox("Veuillez préciser votre configuration de chauffage:                                                                                                   6- Plancher chauffant au rez-de-chaussée ainsi qu'à l'étage                                                                            7- Plancher chauffant au rez-de-chaussée et radiateurs à l'étage", "", 0)
        ta = Worksheets("Feuil1").Range("H" & B + 2).Value
     
    C = InputBox("Veuillez préciser la configuration de votre ensemble:                                                                                              8- Chauffage + ECS                                                       9- Chauffage et ECS Indépendant", "", 0)
        If A < 5 Then L = 12 + (A * 6) + IIf(C = 8, 3, 0) Else L = 42
        ta = ta + Worksheets("Feuil1").Range("D" & L).Value - Worksheets("Feuil1").Range("E" & L).Value
  
  If A = 2 And C = 9 Then
    E = InputBox("Pour ce choix d'ECS indépendant, nous vous conseillons d'utiliser un thermodynamique, deux variantes vous est proposées. Vous choisissez celle qui vous convient:   10- Version Split   11- Version Monobloc  ", "", 0)
        ta = ta + Worksheets("Feuil1").Cells(24, E - 1).Value
  End If
    
    D = InputBox("Souhaitez-vous que votre installation possède 2 circuits de chauffes?                                                                                                                                                                         12- oui                          13- non ", "", 0)
        If D = 12 Then
            If A < 5 Then L = 12 + (A * 6) + IIf(C = 8, 3, 0) Else L = 42
            ta = ta + Worksheets("Feuil1").Range("F" & L).Value
        End If
 
'Traitement
   
   MsgBox (" L'investissement de votre installation de chauffage est de " & ta & " €")
   
  'affichage
   
End Sub

@+

Gael
 

Gael

XLDnaute Barbatruc
Re : Projet VBA petite question...??

Re,

Et pour plus de clarté dans la procédure et dans les affichages, tu peux utiliser "Vbcrlf" qui permet de faire un retour à la ligne dans les affichages, ce qui donne:
Code:
Sub ex_1_cellule_nommées()
'données
    Dim A As Long, B As Long, C As Long, D As Long, E As Long, L As Integer, total_sec As Long, reponse As Long, inv As Long, retinv As Long, ta
    
'entrée des données
    A = InputBox("Vous avez le choix entre ces différents systèmes de chauffage, veuillez tapez le numero qui vous convient:" & vbCrLf & _
    "1- Aérothermie" & vbCrLf & _
    "2- Géothermie" & vbCrLf & _
    "3- Chaudière gaz condensation" & vbCrLf & _
    "4- Chaudières condensation fioul" & vbCrLf & _
    "5- Chaudières Bois", "", 0)
    inv = 0
    retinv = 0
    
    B = InputBox("Veuillez préciser votre configuration de chauffage:" & vbCrLf & _
    "6- Plancher chauffant au rez-de-chaussée ainsi qu'à l'étage" & vbCrLf & _
    "7- Plancher chauffant au rez-de-chaussée et radiateurs à l'étage", "", 0)
        ta = Worksheets("Feuil1").Range("H" & B + 2).Value
     
    C = InputBox("Veuillez préciser la configuration de votre ensemble:" & vbCrLf & _
    "8- Chauffage + ECS" & vbCrLf & _
    "9- Chauffage et ECS Indépendant", "", 0)
        If A < 5 Then L = 12 + (A * 6) + IIf(C = 8, 3, 0) Else L = 42
        ta = ta + Worksheets("Feuil1").Range("D" & L).Value - Worksheets("Feuil1").Range("E" & L).Value
  
  If A = 2 And C = 9 Then
    E = InputBox("Pour ce choix d'ECS indépendant, nous vous conseillons d'utiliser un thermodynamique, deux variantes vous est proposées. Vous choisissez celle qui vous convient:" & vbCrLf & _
    "10- Version Split" & vbCrLf & _
    "11- Version Monobloc  ", "", 0)
        ta = ta + Worksheets("Feuil1").Cells(24, E - 1).Value
  End If
    
    D = InputBox("Souhaitez-vous que votre installation possède 2 circuits de chauffes?" & vbCrLf & _
    "12- oui" & vbCrLf & _
    "13- non ", "", 0)
        If D = 12 Then
            If A < 5 Then L = 12 + (A * 6) + IIf(C = 8, 3, 0) Else L = 42
            ta = ta + Worksheets("Feuil1").Range("F" & L).Value
        End If
 
'Traitement
   
   MsgBox (" L'investissement de votre installation de chauffage est de " & ta & " €")
   
  'affichage
   
End Sub

C'est mieux que de charcher à aligner avec des espaces.

@+

Gael
 

Discussions similaires

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI