Variable integer dans un DIM

Bonjour à tous, j'ai un problème de DIM. J'ai trouver deux codes sur internet qui j'ai adapter pour faire une jonction de PDF.

Option Explicit
Public nbfichier As Integer
Sub Fusion()
    'macro par Kiki29
    Dim Pdf As Object, Fichiers(135) ' J'aimerais mettre ici la variable "nbfichier"
    Dim intcount  As Integer

    Set Pdf = CreateObject("pdfforge.pdf.pdf")

    For intcount = 1 To nbfichier
    Fichiers(intcount) = ThisWorkbook.Path & "\" & "*.pdf"
    Next
    MsgBox ThisWorkbook.Path & "\" & intcount & ".pdf"

    Pdf.MergePDFFiles_2 Fichiers, ThisWorkbook.Path & "\" & "Fusion.pdf", True

    Set Pdf = Nothing

End Sub
Sub compter()
'Macro par Hervé
Dim Chemin As String
Dim rep As String
Chemin = "C:\Users\nomutilisateur\Documents\"
rep = Dir(Chemin & "*.pdf")
While Not rep = ""
nbfichier = nbfichier + 1
rep = Dir
Wend
Fusion

End Sub

Dans ma macro "fusion", à Dim Pdf As Object, Fichiers(135) j'aimerais mettre la constante "nbfichier" qui viens de la macro "compter". Est-ce qu'il y a un moyen pour faire cela? Même si ma variable "nbfichier"= 135, lorsque j'entre dans la macro "fusion", j'ai un message d'erreur. Erreur de compilation: constante requise. La raison pour mettre cette variable, est que le nombre de fichier pdf dans le répertoire ne sera jamais le même.

merci de votre aide

bonjour,

Option Explicit
Public nbfichier As Integer
Sub Fusion()
    'macro par Kiki29
   Dim Pdf As Object, Fichiers() ' J'aimerais mettre ici la variable "nbfichier"
   Dim intcount  As Integer
redim fichiers(nbfichier)

    Set Pdf = CreateObject("pdfforge.pdf.pdf")

    For intcount = 1 To nbfichier
    Fichiers(intcount) = ThisWorkbook.Path & "\" & "*.pdf"
    Next
    MsgBox ThisWorkbook.Path & "\" & intcount & ".pdf"

    Pdf.MergePDFFiles_2 Fichiers, ThisWorkbook.Path & "\" & "Fusion.pdf", True

    Set Pdf = Nothing

End Sub
Sub compter()
'Macro par Hervé
Dim Chemin As String
Dim rep As String
Chemin = "C:\Users\nomutilisateur\Documents\"
rep = Dir(Chemin & "*.pdf")
While Not rep = ""
nbfichier = nbfichier + 1
rep = Dir
Wend
Fusion

End Sub

Bonjour h2so4, merci pour la réponse, je n'avais pas penser à faire un redim. Ça fonctionne très bien.

merci beaucoup.

Bonsoir

pour répondre à ton message en MP,

J'ai modifié mon code selon

ce que tu m'as dit mais j'ai toujours un problème dont je ne trouve pas la

réponse.

voici le code modifié:

Sub CompterFusionnerPDF()

Dim Chemin As String

Dim rep As String

Dim Pdf As Object, Fichiers()

Dim intcount As Integer

'Chemin = "C:\Users\jsgermain\Documents\"

rep = Dir(strChemin2 & "*.pdf")

MsgBox strChemin2

While Not rep = ""

nbfichier = nbfichier + 1

rep = Dir

Wend

nbfichier = nbfichier - 1

ReDim Fichiers(nbfichier)

Set Pdf = CreateObject("pdfforge.pdf.pdf")

For intcount = 0 To nbfichier

BoucleFichiers

Name strChemin2 & "\" & strNomFichier As strChemin2 & "\" & "Z" &

intcount & ".pdf"

Fichiers(intcount) = strChemin2 & "\" & "Z" & intcount & ".pdf"

Next

N = intcount - 2

Pdf.MergePDFFiles_N Fichiers, strChemin2 & "\" & "Fusion.pdf", True

Set Pdf = Nothing

End Sub

dans la troisième avant dernière ligne, j'ai comme écriture :

Pdf.MergePDFFiles_4 ou le "4" représente le nombre de fichier lu en rapport

avec la variable nfichier. Si je met une variable ex: N à cet endroit, le

code ne fonctionne pas, j'ai une erreur de : Propriété ou méthode non géré

par cette objet.

est-ce possible de lui affecter une variable?

merci pour l'aide

je ne connais pas pdfforge, mais d'après ce que j'ai pu trouver sur internet voici comment tu devrais écrire ce code.
Sub CompterFusionnerPDF()

    Dim Chemin As String
    Dim rep As String
    Dim Pdf As Object, Fichiers()
    Dim intcount  As Integer

    'Chemin = "C:\Users\jsgermain\Documents\"
    rep = Dir(strChemin2 & "*.pdf")
    MsgBox strChemin2
    While Not rep = ""
    nbfichier = nbfichier + 1
    rep = Dir
    Wend

    nbfichier = nbfichier - 1
    ReDim Fichiers(nbfichier)

    Set Pdf = CreateObject("pdfforge.pdf.pdf")

    For intcount = 0 To nbfichier
    BoucleFichiers
    Name strChemin2 & "\" & strNomFichier As strChemin2 & "\" & "Z" &
intcount & ".pdf"
    Fichiers(intcount) = strChemin2 & "\" & "Z" & intcount & ".pdf"
    Next
    N = intcount - 2
    Pdf.MergePDFFiles_2 Fichiers, strChemin2 & "\" & "Fusion.pdf", True

    Set Pdf = Nothing

End Sub

merci j'ai trouvé la réponse à mon problème. Il y avait une erreur dans le comptage.

merci pour l'aide.

infodes a écrit :

merci j'ai trouvé la réponse à mon problème. Il y avait une erreur dans le comptage.

merci pour l'aide.

peux-tu mettre ta solution qui fonctionne ?

Rechercher des sujets similaires à "variable integer dim"