XL pour MAC Déboggage VBA Mac

Mathilde22

XLDnaute Nouveau
Bonjour,

Je bloque lors de l'exécution de la macro 1 dans le fichier joint
J'ai le message d'erreur suivant : Erreur d'exécution "6" : dépassement de capacité

Merci d'avance
 

Pièces jointes

  • ProgVBA.xlsm
    19.6 KB · Affichages: 27
Solution
Dim codeModule$ : idem que Dim codeModule As String

il ne peut pas y avoir d'erreur pour ça : M11 est bien du texte :
c'est une chaîne de 3 caractères.

--------------------------------------------------------------------


Dim nbhPrev%, nbhReal% : idem que :
Dim nbhPrev As Integer, nbhReal As Integer

15 et 4 sont des nombres entiers qui tiennent sans aucun
problème dans une variable du type entier
Integer ; pas
d'erreur possible de c'côté-là non plus.

--------------------------------------------------------------------

ah, j'crois bien qu'j'ai trouvé ; essaye avec :


nbhPrev = Val(InputBox("Nombre d'heures...

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Mathilde22, @eriiiic, @Staple1600,

Un essai avec une fonction personnalisée NoteArrondie(ByVal maNote As Single) utilisable en VBA et sur la feuille de calcul.

Notez: le InputBox renvoie un string. Mais VBA, à cause de la déclaration "maNote As Single", convertit le string retour du InputBox en single.

Pour être rigoureux, on ne laisse pas VBA convertir et on le fait explicitement. On peut donc écrire :
VB:
MsgBox NoteArrondie(Csng(Application.InputBox("Saisir une note entre 0 et 20, svp :")))

Le code VBA (version non rigoureuse :)) :
VB:
Sub CalculerNoteArrondie()
   MsgBox NoteArrondie(Application.InputBox("Saisir une note entre 0 et 20, svp :"))
End Sub

Function NoteArrondie(ByVal maNote As Single)
Dim ecart As Single
   ecart = maNote - Int(maNote)
   NoteArrondie = Int(maNote) + IIf(ecart <= 0.00001, 0, IIf(ecart <= 0.5, 0.5, 1))
End Function
 

Pièces jointes

  • Mathilde22- ProgVBA- v1.xlsm
    26.9 KB · Affichages: 4
Dernière édition:

laurent950

XLDnaute Accro
Bonsoir

VB:
Sub CalculerNoteArrondie()
    Dim note As Single, ecart As Single, noteArrondie As Single
    Dim noteEntiere As Byte (Byte 2 Octet à la place de Single 4 Octet)

'Saisie de la note initiale
         note = InputBox("Saisir une note comprise entre 0 et 20") ' 0 à 20 (Byte suffit = 0 à 255)

'RŽcupŽration de la partie entire de la note
        noteEntiere = Int(note)

'DŽtermination de la note arrondie
        ecart = note - noteEntiere
        If ecart = 0 Then
            noteArrondie = note
        Else
            If ecart > 0.5 Then
                noteArrondie = noteEntiere + 1
            Else
                noteArrondie = noteEntiere + 0.5
            End If
        End If
        MsgBox "La note Žtait = ˆ " & note & " elle devient " & noteArrondie
End Sub
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD

Staple1600

XLDnaute Barbatruc
Re, Bonsoir mapomme ;), laurent950
Sans spécifier les dim as cela fonctionne mais la contrainte est de démarrer avec option explicit
Bah cela fonctionne avec Option Explicit, non ?
VB:
Option Explicit
Sub CalculerNoteArrondie()
Dim note, ecart, noteArrondie, noteEntiere
'Saisie de la note initiale
note = InputBox("Saisir une note comprise entre 0 et 20")
'Récupération de la partie entire de la note
noteEntiere = Int(note)
'DŽétermination de la note arrondie
        ecart = note - noteEntiere
        If ecart = 0 Then
            noteArrondie = note
        Else
            If ecart > 0.5 Then
                noteArrondie = noteEntiere + 1
            Else
                noteArrondie = noteEntiere + 0.5
            End If
        End If
        MsgBox "La note était = ˆ " & note & " elle devient " & noteArrondie
End Sub
 

soan

XLDnaute Barbatruc
Inactif
Bonjour @Mathilde22, le fil,

Je te retourne ton fichier modifié. :)

Fais d'abord ces 4 essais :

14,25 ➯ 14,5
14,75 ➯ 15

14 ➯ 14
14,5 ➯ 14,5

Fais encore d'autres essais.

Fais Alt F11 pour voir le code VBA, puis pour
revenir sur Excel.

Si besoin, tu peux demander une adaptation.
Merci de me donner ton avis. ;)


soan
 

Pièces jointes

  • ProgVBA.xlsm
    18.8 KB · Affichages: 9

Discussions similaires

Réponses
3
Affichages
409
Réponses
2
Affichages
168

Statistiques des forums

Discussions
312 428
Messages
2 088 346
Membres
103 821
dernier inscrit
Lorient56