Microsoft 365 VBA division : dépassement de capacité

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 !

VBA_dev_Anne_Marie

XLDnaute Occasionnel
Bonjour,

Je ne comprends pas pourquoi je reçois une erreur de dépassement de capacité, alors que je voudrais juste diviser deux colonnes :
1670886222074.png


Les données sont bien numérique.
Merci pour votre aide !
 

Pièces jointes

Dernière édition:
Bonsoir.
Il est vraisemblable que vous ayez déclaré DernLigne ou i As Integer, c'est à dire comme entier signé sur 2 octets, qui ne peut supporter de valeur supérieure à 32767.
Si tel est le cas changez pour As Long.
Sinon joignez le classeur, qu'on puisse chercher une autre c

Bonsoir.
Il est vraisemblable que vous ayez déclaré DernLigne ou i As Integer, c'est à dire comme entier signé sur 2 octets, qui ne peut supporter de valeur supérieure à 32767.
Si tel est le cas changez pour As Long.
Sinon joignez le classeur, qu'on puisse chercher une autre cause.
Bonjour,

Merci pour votre message, j'ai vérifié mais ça ne marche pas, j'ai joint le classeur à ma question.
 
Je l'aurais écrit assez différemment, car je ne travaille jamais directement avec les cellules individuelles, c'est trop lent, toujours via des tableaux dynamiques :
VB:
Option Explicit
Sub Test()
   Dim Wsh As Worksheet, TD(), LMax As Long, TR(), L As Long
   On Error Resume Next
   Set Wsh = Worksheets("Résultats")
   If Err Then Err.Clear: Set Wsh = Worksheets("RESULTATS")
   If Err Then MsgBox "L'onglet ""RESULTAT"" n'existe pas dans le classeur actif.", _
      vbCritical, "Test": Exit Sub
   If Wsh.[C1].Value = "Coût" Then Wsh.Columns("C").Delete
   TD = Wsh.[B2].Resize(Wsh.[A1000000].End(xlUp).Row - 1, 2).Value
   LMax = UBound(TD, 1)
   ReDim TR(1 To LMax, 1 To 1)
   For L = 1 To LMax
      If TD(L, 2) <> 0 Then TR(L, 1) = TD(L, 1) / TD(L, 2)
      If Err Then
         Application.Goto Wsh.[B1:C1].Offset(L)
         MsgBox "Err " & Err & " sur :" & vbLf & TD(L, 1) & " / " & TD(L, 2) _
            & vbLf & Err.Description, vbCritical, "Test"
         Exit Sub: End If
      Next L
   Wsh.Columns("C").Insert
   With Wsh.[C1]: .Value = "Coût": .Interior.Color = RGB(0, 128, 0): End With
   Wsh.[C2].Resize(LMax).Value = TR
   End Sub
 
- 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
10
Affichages
778
Réponses
6
Affichages
386
Réponses
5
Affichages
89
Retour