Dépassement de capacité ( type de variable Integer)

woow74

XLDnaute Nouveau
Bonjour tout le monde ,

Je reviens vers vous pour un problème avec une macro que j'ai réaliser pour traiter un certain nombre de fichiers.
La macro :
Code:
Option Explicit
Sub TraiterRepertoire(ByRef nomfic_NIR2 As String, ByRef repertoire_RAF As String, ByRef sauvegarde As String)
'****************************Paramètre du fichier de résultat****************************************************
Dim xlsapp As Object  'Excel.Application
Dim xlsbook As Object  'Excel.Workbook 'Classeur Excel
Dim xlssheet As Object  'Excel.Worksheet 'Feuille Excel
Set xlsapp = CreateObject("Excel.Application")
Set xlsbook = xlsapp.Workbooks.Add
'Protection
If Dir(sauvegarde & "Report.xls") <> "" Then
  If MsgBox("Fichier Report.xls existe déjà voulez-vous le supprimer ?", vbYesNo) = vbYes Then
     Kill sauvegarde & "Report.xls"
  Else
    MsgBox "Arrèt de la macro"
    End
  End If
End If
  xlsbook.SaveAs sauvegarde & "Report.xls"
Set xlssheet = xlsbook.Sheets("Feuil1")
Dim i As Integer
i = 1
'****************************Paramètre du fichier de résultat****************************************************
  Dim FSO      As New FileSystemObject
   Dim file_RAF As File
   Dim wb_NIR2  As Workbook

   Workbooks.OpenText nomfic_NIR2
   Set wb_NIR2 = ActiveWorkbook
   wb_NIR2.Worksheets(1).Columns(1).NumberFormat = "0"
    For Each file_RAF In FSO.GetFolder(repertoire_RAF).Files
        'Ajout de deux nouveau paramètre
        If UCase(file_RAF.Name) Like "RAF*" Then TraiterFichierRAF wb_NIR2.Worksheets(1), file_RAF, xlssheet, i
    Next
    wb_NIR2.Close False
'*******************************Fermeture du fichier de résultat
  TRI xlsbook
  
  xlsbook.Save
  xlsbook.Close
  xlsapp.Quit
  xlsapp.Workbooks.Open (sauvegarde & "Report.xls") 'Affichage du réultat
  xlsapp.Visible = True
  Set xlsapp = Nothing
  Set xlsbook = Nothing
  Set xlssheet = Nothing
'*******************************Fermeture du fichier de résultat
End Sub
Sub TraiterFichierRAF(ws_NIR2 As Worksheet, file_RAF As File, v_newfile As Worksheet, v_cellule As Integer)
Dim synthese As Workbook
Dim ws_synthese As Worksheet
Dim wb_RAF          As Workbook
Dim ws_RAF          As Worksheet
Dim ws_RAF_resultat  As Worksheet
Dim cel_NIS_cherchee As Range
Dim cel_RAF_trouvee  As Range
Dim cel_REF_resultat As Range
Dim v_cel_fin As String
Dim ligne As Single
    Workbooks.OpenText Filename:=file_RAF.Path
    Set wb_RAF = ActiveWorkbook
    Set ws_RAF = wb_RAF.Worksheets(1)
    Set ws_RAF_resultat = wb_RAF.Worksheets.Add
    ws_RAF_resultat.Name = "Resultat"
    Set cel_REF_resultat = ws_RAF_resultat.Range("A1")
    v_cel_fin = FIND_LAST(ws_NIR2) '.Range("A1")
    For Each cel_NIS_cherchee In ws_NIR2.Range("A1:" & v_cel_fin)
        Set cel_RAF_trouvee = ws_RAF.Columns(1).Find(cel_NIS_cherchee.Value)
        If Not cel_RAF_trouvee Is Nothing Then
            Do
               cel_REF_resultat.Value = cel_RAF_trouvee.Value
               v_newfile.Range("A" & v_cellule) = cel_RAF_trouvee.Value '*******Ecriture dans le nouveau fichier
               v_newfile.Range("D" & v_cellule) = SUPP_PATH(file_RAF) '*******Ecriture du fichier RAF
               Set cel_REF_resultat = cel_REF_resultat.Offset(1)
               Set cel_RAF_trouvee = cel_RAF_trouvee.Offset(1)
               ligne = ligne + 1
                v_cellule = v_cellule + 1
           Loop Until cel_RAF_trouvee.Text Like "S10.G01.00.002*" Or cel_RAF_trouvee.Value = ""
        End If
   Next
  wb_RAF.Close False
End Sub

v_cellule est définie en integer , du coup quand j'arrive à 32767 la macro beug et me met un message d'erreur dépassement de la capacité , hors j'aimerai définir v_cellule en Long comme ça j'ai plus le problème de capacité sauf que je n'y arrive pas car c'est pas compatible avec la déclaration Byref...

Quelqu'un aurait une idée de comment je pourrai modifier la déclaration afin que je puisse traiter les fichiers sans avoir à me soucier de la limite de capacité pour un Iteger et définir v_cellule en Long?
Merci à tout le monde et bonne journée
 

tototiti2008

XLDnaute Barbatruc
Re : Dépassement de capacité ( type de variable Integer)

Bonjour woow74,

Évidement, ça va pas être très facile à tester pour nous

Peut-être changer en "v_cellue As Long"
et aussi "Dim i as Long" dans la procédure TraiterRepertoire

mais ce n'est qu'une supposition...
 

Discussions similaires

Réponses
3
Affichages
92
Réponses
2
Affichages
203

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa