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...

eriiic

XLDnaute Barbatruc
Bonjour,

tu as bien fait de spécifier Mac dans ton titre, mais là je ne pense pas qu'il soit en cause.
Tu aurais pu préciser quoi faire pour avoir l'erreur... non constatée.

Commence remplacer tes As Integer par des As Long qui vont beaucoup plus loin, et si besoin tes As Single par des As Double.
eric
 

Staple1600

XLDnaute Barbatruc
Re

Fais ce test, et tu verras que je ne dis pas que des billevesées.
VB:
Sub test()
Dim note As Single
note = InputBox("test", "test", Date)
MsgBox note
End Sub
Sub test_OK()
Dim note As String
note = InputBox("test", "test", Date)
MsgBox note
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

1) Rien n'indique dans le premier message qu'il s'agit d'un cours
2) J'ai été un peu vite en besogne avec mon String
car...
VB:
Sub test_OK_Bis()
Dim note
note = Int(InputBox("test", "test", 13.5) * 1)
MsgBox note
End Sub
Sub test_OK_ter()
MsgBox Int(InputBox("test", "test", 13.5) * 1)
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Je te laisse chercher (puisqu'il s'agit d'apprendre) comment sont ici déclarées les variables
(et j'ajoute en bonus à autre type de syntaxe)
VB:
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
Sub CalculerNoteArrondie_bis()
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
    Select Case ecart
    Case 0
    noteArrondie = note
    Case Is > 0.5
    noteArrondie = noteEntiere + 1
    Case Else
    noteArrondie = noteEntiere + 0.5
End Select
MsgBox "La note était = ˆ " & note & " elle devient " & noteArrondie
End Sub
 

Discussions similaires

Réponses
3
Affichages
374
Réponses
2
Affichages
135

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote