'Voici le code de la form qui vous permet d'intégrer 'une calculatrice style Money* à votre application. ' 'COMMENT RECUPERER CE CODE ? '1 - Enregistrez ce fichier sur votre ordinateur. '2 - Renommez le avec une extension FRM. '3 - Démarrer un nouveau projet Visual Basic* ou ouvrez un projet existant. '4 - Ajoutez le fichier à ce projet. '5 - Double-cliquez sur la form dans l'explorateur de projet pour afficher la form. ' ' '*propriété de MicroSoft ' '********************* VOICI LE CODE DE LA FORM ************************** ' VERSION 5.00 Begin VB.Form frmCalculatriceMoney BackColor = &H00000000& BorderStyle = 1 'Fixed Single ClientHeight = 1605 ClientLeft = 7335 ClientTop = 5160 ClientWidth = 1560 ControlBox = 0 'False Icon = "frmCalculatriceMoney.frx":0000 KeyPreview = -1 'True LinkTopic = "Form1" LockControls = -1 'True MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 1605 ScaleWidth = 1560 Begin VB.PictureBox Picture1 Height = 375 Left = 1140 Picture = "frmCalculatriceMoney.frx":000C ScaleHeight = 315 ScaleWidth = 435 TabIndex = 17 Top = 1260 Visible = 0 'False Width = 495 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "6" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 4 Left = 75 MousePointer = 99 'Custom TabIndex = 18 ToolTipText = "Chiffre: 6" Top = 375 Width = 315 End Begin VB.Label Operator Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00FFC0C0& BorderStyle = 1 'Fixed Single Caption = "=" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 4 Left = 795 MousePointer = 99 'Custom TabIndex = 16 ToolTipText = "Résultat" Top = 1275 Width = 675 End Begin VB.Label BoutonDecimal Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "," BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Left = 435 MousePointer = 99 'Custom TabIndex = 15 ToolTipText = "Séparateur décimal" Top = 975 Width = 315 End Begin VB.Label Operator Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00FFC0C0& BorderStyle = 1 'Fixed Single Caption = "-" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 3 Left = 1155 MousePointer = 99 'Custom TabIndex = 14 ToolTipText = "Soustraire" Top = 975 Width = 315 End Begin VB.Label Operator Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00FFC0C0& BorderStyle = 1 'Fixed Single Caption = "x" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 2 Left = 1155 MousePointer = 99 'Custom TabIndex = 13 ToolTipText = "Multiplier" Top = 375 Width = 315 End Begin VB.Label Operator Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00FFC0C0& BorderStyle = 1 'Fixed Single Caption = "+" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 1 Left = 1155 MousePointer = 99 'Custom TabIndex = 12 ToolTipText = "Ajouter" Top = 675 Width = 315 End Begin VB.Label Operator Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00FFC0C0& BorderStyle = 1 'Fixed Single Caption = "/" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 400 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 0 Left = 1155 MousePointer = 99 'Custom TabIndex = 11 ToolTipText = "Diviser" Top = 75 Width = 315 End Begin VB.Label CancelEntry Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00008000& BorderStyle = 1 'Fixed Single Caption = "CE" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 255 Left = 435 MousePointer = 99 'Custom TabIndex = 10 ToolTipText = "CE" Top = 1275 Width = 315 End Begin VB.Label Cancel Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00008000& BorderStyle = 1 'Fixed Single Caption = "C" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00FFFFFF& Height = 255 Left = 75 MousePointer = 99 'Custom TabIndex = 9 ToolTipText = "C" Top = 1275 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "9" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 9 Left = 795 MousePointer = 99 'Custom TabIndex = 8 ToolTipText = "Chiffre: 9" Top = 75 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "8" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 8 Left = 435 MousePointer = 99 'Custom TabIndex = 7 ToolTipText = "Chiffre: 8" Top = 75 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "7" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 7 Left = 75 MousePointer = 99 'Custom TabIndex = 6 ToolTipText = "Chiffre: 7" Top = 75 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "4" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 6 Left = 795 MousePointer = 99 'Custom TabIndex = 5 ToolTipText = "Chiffre: 4" Top = 375 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "5" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 5 Left = 435 MousePointer = 99 'Custom TabIndex = 4 ToolTipText = "Chiffre: 5" Top = 375 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "3" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 3 Left = 795 MousePointer = 99 'Custom TabIndex = 3 ToolTipText = "Chiffre: 3" Top = 675 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "2" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 2 Left = 435 MousePointer = 99 'Custom TabIndex = 2 ToolTipText = "Chiffre: 2" Top = 675 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "1" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 1 Left = 75 MousePointer = 99 'Custom TabIndex = 1 ToolTipText = "Chiffre: 1" Top = 675 Width = 315 End Begin VB.Label lblBouton Alignment = 2 'Center Appearance = 0 'Flat BackColor = &H00C0FFFF& BorderStyle = 1 'Fixed Single Caption = "0" BeginProperty Font Name = "MS Sans Serif" Size = 9.75 Charset = 0 Weight = 700 Underline = 0 'False Italic = 0 'False Strikethrough = 0 'False EndProperty ForeColor = &H00000000& Height = 255 Index = 0 Left = 75 MousePointer = 99 'Custom TabIndex = 0 ToolTipText = "Chiffre: 0" Top = 975 Width = 315 End End Attribute VB_Name = "frmCalculatriceMoney" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Private Op1, Op2 ' Opérande saisi précédemment. Private Virgule As Integer ' Le séparateur décimal est-il déjà en place? Private NumOps As Integer ' Nombre d'opérandes. Private LastInput ' Indique le type de la dernière touche enfoncée. Private OpFlag ' Indique quelle est l'opération en cours. Private TempReadout Public ZoneDeSaisie As TextBox Private Declare Function SetWindowPos Lib "USER32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Sub Cancel_Click() ' Op1 = 0 Op2 = 0 Virgule = False NumOps = 0 LastInput = "NONE" OpFlag = " " ZoneDeSaisie.Text = Format(0, "0,") ' End Sub Private Sub CancelEntry_Click() Virgule = False LastInput = "CE" ZoneDeSaisie.Text = Format(0, "0,") End Sub Private Sub BoutonDecimal_Click() If LastInput = "NEG" Then ZoneDeSaisie.Text = Format(0, "-,") ElseIf LastInput <> "NUMS" Then ZoneDeSaisie.Text = Format(0, ",") End If Virgule = True LastInput = "NUMS" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) On Error Resume Next Select Case KeyCode Case vbKeyNumpad0 lblBouton_Click (0) Case vbKeyNumpad1 lblBouton_Click (1) Case vbKeyNumpad2 lblBouton_Click (2) Case vbKeyNumpad3 lblBouton_Click (3) Case vbKeyNumpad4 lblBouton_Click (4) Case vbKeyNumpad5 lblBouton_Click (5) Case vbKeyNumpad6 lblBouton_Click (6) Case vbKeyNumpad7 lblBouton_Click (7) Case vbKeyNumpad8 lblBouton_Click (8) Case vbKeyNumpad9 lblBouton_Click (9) Case vbKeyAdd Operator_Click 1 Case vbKeyDivide Operator_Click 0 Case vbKeyMultiply Operator_Click 2 Case vbKeySubtract Operator_Click 3 Case vbKeyBack CancelEntry_Click Case vbKeyReturn Operator_Click 4 Case vbKeyDecimal BoutonDecimal_Click Case vbKeyDelete Cancel_Click Case vbKeyEscape Unload Me End Select End Sub Private Sub Form_Load() 'calculatrice à integrer dans votre application 'exemple d'appel de la fenetre. celle ci s'appelle frmCalculatriceMoney 'et vous voulez afficher la valeur saisie dans une zone de texte appele Text1 'appartenant une feuille appelee form1 'en appuyant sur un bouton appele Command1 ' '******DEBUT DU CODE ' 'Private Sub Command1_Click() 'frmCalculatriceMoney.Show vbModal 'affiche la fenetre 'end sub 'voila, rien de plus simple. maintenant modifier le code 'suivant se trouvant dans la procedure form_load() de la 'form frmCalculatriceMoney With Me .Top = 200 'mettez ici la position en hauteur X de la fenetre .Left = 200 'mettez ici la position gauche Y de la fenetre .Height = 1650 'mettez ici la hauteur de la fenetre .Width = 1570 'mettez ici la largeur de la fenetre End With 'affecter ici la zone de texte dans laquelle s'affiche la saisie Set ZoneDeSaisie = Form1.Text1 'nom de la form.nom de la zone de texte ' ' '*******FIN DU CODE ' ' 'NE RIEN CHANGER CI-DESSOUS Call AlwaysOnTop(Me) ' 'initialisation des variables Virgule = False NumOps = 0 LastInput = "NONE" OpFlag = " " ZoneDeSaisie.Text = Format(0, "0,") ' Dim I% For I = 0 To 9 lblBouton(I).MouseIcon = Picture1.Picture Next I Cancel.MouseIcon = Picture1.Picture CancelEntry.MouseIcon = Picture1.Picture BoutonDecimal.MouseIcon = Picture1.Picture For I = 0 To 4 Operator(I).MouseIcon = Picture1.Picture Next I ' End Sub Private Sub AlwaysOnTop(frm As Form) Dim WndLeft, WndTop As Long ' Il y a un problème avec les mesures, ' peut-être c'est sur la propriété ScaleMode ! ' Je n'arrive pas à la résoudre, alors, j'essaye les ' valeurs par tatonement pour garder la fenetre ' à sa position initiale. WndLeft = frm.Left / 15 WndTop = frm.Top / 15 SetWindowPos Me.hWnd, True, WndLeft, WndTop, 0, 0, 33 End Sub Private Sub lblBouton_Click(Index As Integer) If LastInput <> "NUMS" Then ZoneDeSaisie.Text = Format(0, ",") Virgule = False End If If Virgule Then ZoneDeSaisie.Text = ZoneDeSaisie.Text + lblBouton(Index).Caption Else ZoneDeSaisie.Text = Left(ZoneDeSaisie.Text, InStr(ZoneDeSaisie.Text, Format(0, ",")) - 1) + lblBouton(Index).Caption + Format(0, ",") End If If LastInput = "NEG" Then ZoneDeSaisie.Text = "-" & ZoneDeSaisie.Text LastInput = "NUMS" End Sub Private Sub Operator_Click(Index As Integer) TempReadout = ZoneDeSaisie.Text ' If LastInput = "NUMS" Then NumOps = NumOps + 1 End If Select Case NumOps Case 0 If Operator(Index).Caption = "-" And LastInput <> "NEG" Then ZoneDeSaisie.Text = "-" & ZoneDeSaisie.Text LastInput = "NEG" End If Case 1 Op1 = ZoneDeSaisie.Text If Operator(Index).Caption = "-" And LastInput <> "NUMS" And OpFlag <> "=" Then ZoneDeSaisie.Text = "-" LastInput = "NEG" End If Case 2 Op2 = TempReadout Select Case OpFlag Case "+" Op1 = CDbl(Op1) + CDbl(Op2) Case "-" Op1 = CDbl(Op1) - CDbl(Op2) Case "x" Op1 = CDbl(Op1) * CDbl(Op2) Case "/" If Op2 = 0 Then MsgBox "Division par zéro.", 48, "Opération impossible" Else Op1 = CDbl(Op1) / CDbl(Op2) End If Case "=" Op1 = CDbl(Op2) Case "%" Op1 = CDbl(Op1) * CDbl(Op2) End Select ZoneDeSaisie.Text = Op1 NumOps = 1 End Select If LastInput <> "NEG" Then LastInput = "OPS" OpFlag = Operator(Index).Caption End If If Index = 4 Then Set ZoneDeSaisie = Nothing Unload Me End If End Sub