Msg box permettant un calcul

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Msg box permettant un calcul

Bonjour à tous, Bonjour Chris401

Juste un petit rappel (en provenance de la charte)
4 – La question doit être posée le plus clairement possible en comprenant bien que le lecteur ne peut pas s’imaginer le problème.

mcj1997
Bonjour,
Question dans mon fichier joint,
Merci d'avance,

Un peu plus de détails et d'explications directement dans le message, ce serait mieux.

Ça donnerait (ou pas) envie d'ouvrir ta PJ.
Ça permettrait de savoir de suite, si on est capable de traiter le sujet (ou si le sujet nous intéresse)
Chose bien utile avant de télécharger un fichier.

Tu sais maintenant ce que ton message un peu court a eu comme effet sur moi. 😉
 
Dernière édition:
Re : Msg box permettant un calcul

Bonsour®
Bonjour,
Question dans mon fichier joint,
Merci d'avance,

un msgbox ne permet pas de calcul
il répond à une question...
voir utilisation de InputBox ou Userform

d'ailleurs pourquoi passer par un interface???
alors que le remplissage des 2 zones CV et Km suffit à la réponse ...
Capture.jpg
 

Pièces jointes

  • calcul-frais-kms.xls
    calcul-frais-kms.xls
    39.5 KB · Affichages: 50
  • Capture.jpg
    Capture.jpg
    16.7 KB · Affichages: 34
  • Capture.jpg
    Capture.jpg
    16.7 KB · Affichages: 38
Dernière édition:
Re : Msg box permettant un calcul

Merci Chris401, la question était au moins claire pour une personne ! merci.

Était-il possible que "nombre de chevaux et nombre de kilomètre" n'apparaissent que dans le message box (qui s'ouvrirait en cochant une case) et que ne figurerait sur le classeur uniquement le résultat : frais réels ?

Merci d'avance,
 
Re : Msg box permettant un calcul

Re, Bonjour Modeste Geedee

Merci Chris401, la question était au moins claire pour une personne ! merci.
Ce qui compte c'est qu'elle soit d'abord dans la discussion , et pas seulement dans la PJ.

En tout cas, tu es plus prolixe dans ce deuxième message.
C'est déjà cela de gagné 😉

Et pour répondre à ta question (la dernière)
oui

PS: Le temps de concocter la chose, et je reviens (sauf si d'autres ici auront publié réponse illustrative à ta dernière question)
 
Re : Msg box permettant un calcul

Re

->Modeste Geedee
Pour le fun, j'ai essayé d'utiliser tes formules en VBA
Et je n'arrive pas à trouver où j'ai merdoyé
J'ai une incompatibilité de type sur la ligne
MsgBox Application.Match(b, ActiveSheet.Range("$J$1:$L$1"), 1)
avec que pour a cela fonctionne.
Peux-tu éclaire ma lanterne?
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rs, a, b
If Target.Address = "$B$2" Then
rs = InputBox("Nbr CV/Nbr Km", "Saisie données", "6/15000")
a = CDbl(Split(rs, "/")(0))
b = CDbl(Split(rs, "/")(1))
MsgBox a
MsgBox b
MsgBox Application.Match(a, ActiveSheet.Range("I2:I6"), 1)
MsgBox Application.Match(b, ActiveSheet.Range("$J$1:$L$1"), 1)
End If
End Sub
 
Re : Msg box permettant un calcul

Bonsour®
Re

->Modeste Geedee
Pour le fun, j'ai essayé d'utiliser tes formules en VBA
Et je n'arrive pas à trouver où j'ai merdoyé
J'ai une incompatibilité de type sur la ligne
MsgBox Application.Match(b, ActiveSheet.Range("$J$1:$L$1"), 1)
avec que pour a cela fonctionne.
Peux-tu éclaire ma lanterne?

😉 tu n'as pas utilisé ma feuille ... 😀

🙄 🙄 🙄 🙄 🙄les cellules $j$1:$L$1 et $i$2:$I$6
contiennent strictement des nombres, associées chacunes à un format personnalisé
Capture.JPG Capture2.jpg
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    61.4 KB · Affichages: 53
  • Capture.JPG
    Capture.JPG
    61.4 KB · Affichages: 50
  • Capture2.jpg
    Capture2.jpg
    51.5 KB · Affichages: 47
  • Capture2.jpg
    Capture2.jpg
    51.5 KB · Affichages: 57
Re : Msg box permettant un calcul

Re

Modeste Geedee
Merci de cette précision fort utile.
Je n'ai pas utilisé ta feuille mais j'ai ouvert ta PJ.
Ça compte ça quand même😉

Là ou j'ai failli, c'est quand j'ai vu (et apprécié) tes formules, j'ai "ctrlcéter" dare-dare celles-ci puis rebasculer dans le PJ du demandeur (où était mon code VBA). Désolé 😱😛

Ta précision apportée permettra aussi à ceux qui n'utiliseront pas ton fichier mais seront inspiré par lui ne pas oublier tous les tenants et aboutissants qui rendent facile ce calcul de frais réels et qui prône en faveur de l'abandon de VBA pour le traitement de cette question.
 
Dernière édition:
Re : Msg box permettant un calcul

Bonjour Staple1600, Modeste geedee, mcj1997, Chris401, le forum,

En reprenant et en mixant le travail de Modeste geedee et de Staple1600.
On peut maintenir les formules en place et utiliser une macro événementielle en feuille 1.
Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rs, a, b
If Target.Address = "$B$2" Then
rs = InputBox("Nbr CV/Nbr Km", "Saisie données", "6/15000")
a = CDbl(Split(rs, "/")(0))
b = CDbl(Split(rs, "/")(1))
Range("B2") = a
Range("B3") = b

End If

End Sub
Ou, en mieux :
Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rs
If Target.Address = "$B$2" Then
rs = InputBox("Nbr CV/Nbr Km", "Saisie données", "6/15000")
Range("B2") = CDbl(Split(rs, "/")(0))
Range("B3") = CDbl(Split(rs, "/")(1))

End If

End Sub
Si on veut supprimer l'excellent travail de Modeste geedee, on peut, par exemple, utiliser un Select Case.
Faut en vouloir pour opter pour ça mais comme ça m'est passé par l'esprit, je me sens obligé de la présenter (ne pas passer par des formules). Ça peut toujours être utile dans d'autres cas de figure.
Dans ce cas, il faudra ajouter un "exit sub" si la cellule n'est pas B2.

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rs, a, b
If Target.Address = "$B$2" Then
rs = InputBox("Nbr CV/Nbr Km", "Saisie données", "6/15000")
a = CDbl(Split(rs, "/")(0))
b = CDbl(Split(rs, "/")(1))
Range("B2") = a
Range("B3") = b


'*****************************************

Dim c As Integer, d As Integer

Select Case b '----------- trouver la colonne
    Case 0 To 5000
                c = "10"
    Case 5001 To 20000
                c = "11"
    Case Is > 20000
                c = "12"
End Select

Select Case a '----------- trouver la ligne
    Case Is = 3
                d = "2"
    Case Is = 4
                d = "3"
    Case Is = 5
                d = "4"
    Case Is = 6
                d = "5"
    Case Is > 7
                d = "6"
End Select

Range("B6") = Cells(d, c)

End If

If Target.Address <> "$B$2" Then Exit Sub

End Sub


Je suppose que les possibilités ne manquent pas mais ce sont les premières qui me sont passées à l'esprit.
Personnellement, j'aurais mis en place un bouton qui appelait une simple macro.
D'ailleurs, nous n'avons pas respecté sa demande : clic sur B2 ou B3. Nous utilisons simplement B2.

Disons que maintenant, il a un INPUTBOX fonctionnel.

@ +
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
231
Réponses
3
Affichages
418
Réponses
2
Affichages
169
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
316
Retour