Erreur '6' Dépassement de capacité [Résolu]

- - Dernière réponse : ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 11 avril 2013 à 12:49
Bonjour,

Je souhaite insérer automatiquement les dates manquantes voici le fichier excel sur lequel je travail: http://cjoint.com/?CDiosKpPr2C

une personne m'a aidé à avoir ce code sauf que he trouve lors de l'éxecution de ce code Erreur '6' Dépassement de capacité
voici le code
Option Explicit

Sub Remplissage()
Dim LastLig As Long, i As Long, j As Long, k As Long, m As Long
Dim n As Integer
Dim Tb, Res()

Application.ScreenUpdating = False
With Worksheets("Test")
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
Tb = .Range("A2:B" & LastLig)

ReDim Res(1 To 2, 1 To 1)
Res(1, 1) = CLng(Tb(1, 1))
Res(2, 1) = Tb(1, 2)
j = 1
For i = 2 To LastLig - 1
n = Diff(Tb, i)
m = j + n
ReDim Preserve Res(1 To 2, 1 To m)
For k = j + 1 To m
Res(1, k) = Suiv(Res(1, k - 1))
Res(2, k) IIf(n 1 Or k = m, Tb(i, 2), Tb(i - 1, 2))
Next k
j = m
Next i
With .Range("B2")
.Resize(j, 2) = Application.Transpose(Res)
.Resize(j, 1).NumberFormat = "dd/mm/yyyy"
End With
End With
End Sub

Private Function Diff(ByVal T, ByVal d As Long) As Byte
Dim Dte As Long, Der As Long


Der = CLng(T(d - 1, 1))
Dte = CLng(T(d, 1))


Diff = Evaluate("=NETWORKDAYS(" & Der & "," & Dte & ")") - 1


End Function

Private Function Suiv(ByVal Dte As Long) As Long

Suiv = Evaluate("=WORKDAY(" & Dte & ",1)")
End Function


merci
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
14323
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 décembre 2018
3
Merci
Bonjour,

VBA n'est pas VB6, je déplace.

Sur quelle ligne l'erreur ?

Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).

v----Signature--------v----------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de NHenry
3
Merci
Bonjour,
hé bien, tu remplaces la ligne:
n = Diff(Tb, i)


Par:
MsgBox "Tb " & Tb & " ; et i " & i & "... Ce sont des valeurs cohérentes? "
n = Diff(Tb, i)


D'ailleurs tu dis que Tb est égal à une range de plusieurs cellules (Tb = .Range("A2:B" & LastLig)), étrange...


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
0
Merci
Ok NHenry

c'est sur cette ligne :

Diff = Evaluate("=NETWORKDAYS(" & Der & "," & Dte & ")") - 1

Merci
Commenter la réponse de TraderAS
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Dim n As Integer
.....
n = Diff (Tb, i)
...
Private Function Diff(ByVal T, ByVal d As Long) As Byte

(sans autres commentaires, hein ...)
_______________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Ok merci à vous tous, c'est pris en compte et ca marche ;)
Commenter la réponse de TraderAS
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bon !
Soyons clairs :
c'est pris en compte et ca marche
*
on comprend le "c'est pris en compte" (donc le msgbox)
mais pas le "et ça marche" ...
Quelle a donc été le correction apportée ? En rappelant que l'on est sur un forum et que les solutions doivent être connues d'autres visiteurs.
J'y tiens !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.