XL pour MAC Déboggage VBA Mac

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 !

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

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...
Bonjour @Mathilde22,

as-tu essayé le fichier de mon post #29 ?

pour ta demande, le code VBA est celui-ci :

VB:
Sub CalculerNoteArrondie()
  Dim msg$, chn$, note!, noteEntiere%, ecart!, noteArrondie!, k!

  'Saisie de la note initiale
  Do
    msg = "Saisir une note comprise entre 0 et 20." & vbLf & vbLf _
      & "Cette note peut être un nombre fractionnaire ;" & vbLf _
      & "pour la virgule, vous pouvez saisir « , » ou « . »" & vbLf
    chn = InputBox(msg): note = Val(Replace$(chn, ",", "."))
  Loop Until note >= 0 And note <= 20

  'Récupération de la partie entière de la note
  noteEntiere = Int(note)

  'Détermination de la note arrondie
  ecart = note - noteEntiere
  If ecart <> 0 Then If ecart > 0.5 Then k = 1 Else k = 0.5
  noteArrondie = noteEntiere + k
  chn = IIf(noteArrondie = note, "reste", "devient")
  MsgBox "La note était " & note & " ; elle " _
    & chn & " " & noteArrondie
End Sub
note que la boîte de dialogue est plus complète et plus explicite ;
note aussi l'utilisation de la variable k.

j'ai aussi fait des modifs au-dessus :

Code:
Option Explicit

Sub CalculerPourcentage()
  Dim codeModule$, nbhPrev%, nbhReal%, pourcentageRealise!
  codeModule = InputBox("Module ?")
  nbhPrev = InputBox("Nombre d'heures prévues")
  nbhReal = InputBox("Nombre d'heures réalisées")
  pourcentageRealise = Round(nbhReal / nbhPrev * 100, 2)
  MsgBox "Pour le module " & codeModule _
    & " le pourcentage de réalisation est de " _
    & pourcentageRealise & " %"
End Sub

Sub PermutMoyenne()
  Dim moyM11!, moyM12!, a!
  moyM11 = 8.5: moyM12 = 12.9
  a = moyM11
  moyM11 = moyM12: moyM12 = a
End Sub
(je pense que ça devrait marcher sur Mac aussi. 😉)

soan
 
J'ai saisi ce programme :

Option Explicit

Sub CalculerPourcentage()
Dim codeModule$, nbhPrev%, nbhReal%, pourcentageRealise!
codeModule = InputBox("Module ?")
nbhPrev = InputBox("Nombre d'heures prévues")
nbhReal = InputBox("Nombre d'heures réalisées")
pourcentageRealise = Round(nbhReal / nbhPrev * 100, 2)
MsgBox "Pour le module " & codeModule _
& " le pourcentage de réalisation est de " _
& pourcentageRealise & " %"
End Sub

L'erreur concerne la ligne pourcentageRealise

Mathilde
 
@Mathilde22

ok, mais quelle note as-tu saisie ?

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

à tout hasard, essaye avec :


Dim codeModule$, nbhPrev%, nbhReal%, pourcentageRealise#

j'ai changé que le dernier caractère : « # » au lieu de « ! »

c'est comme :
Dim pourcentageRealise As Double (en double précision)

au lieu de :
Dim pourcentageRealise As Single (en simple précision)

soan
 
Dernière édition:
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 prévues"))

et :

nbhReal = Val(InputBox("Nombre d'heures réalisées"))

pour chaque ligne, n'oublie pas la parenthèse finale !

mais c'qui est bizarre, c'est qu'ça aurait plutôt dû être
une erreur de division par 0, pas un dépassement de
capacité (l'erreur 6).


soan
 
Lis d'abord mon post précédent.

pour le calcul lui-même, ça aurait dû faire :


pourcentageRealise = Round(nbhReal / nbhPrev * 100, 2)
= Round(4 / 15 * 100, 2)
= Round(0.2666666666667 * 100, 2)
= Round(26.66666666667, 2)
=26.67

pour la virgule, j'ai mis un point façon VBA anglais ;
c'est donc le nombre : 26,67 (à la française 😉)


Round(..., 2) fait un arrondi à 2 chiffres après la virgule ;
vérifie si c'est pareil avec ta version Mac d'Excel.

dans le calcul ci-dessus, je ne vois pas ce qui pourrait causer
une erreur « 6 » : Dépassement de capacité.


soan
 
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
3
Affichages
188
Réponses
23
Affichages
399
Réponses
16
Affichages
401
Réponses
2
Affichages
148
Retour