Bonjour, j'ai toute une série de chiffres de 1 à 100000 et d'un autre coté j'ai une macro qui ouvre des fichiers pdf tous au meme format 0000000.pdf.
le 1 c'est 0000001.pdf le 100000 c'est 0100000.pdf.
ma série de chiffre est dans un classeur excel et meme si je lui force un format 0000000 dans la cellule la valeur récupérée dans la macro est 1 au lieu de 0000001.
Merci pour vos astuces
voila la macro que j'utilise
Option Explicit
'### Constante à adapter à votre usage ###
Const CHEMIN As String = "c:\"
'#########################################
Const TAG_ICONE As String = "___pmo_"
Sub InserePDF()
Dim PDFobject As Object
Dim S As Shape
Dim i&
Dim nbLig&
Dim A$
Dim toto As String
On Error GoTo Erreur
'Application.ScreenUpdating = False
For Each S In ActiveSheet.Shapes
If Left(S.Name, Len(TAG_ICONE)) = TAG_ICONE Then S.Cut
Next S
nbLig& = ActiveSheet.[a65536].End(xlUp).Row
For i& = 1 To nbLig&
A$ = Trim(Range("a" & i& & ""))
If A$ <> "" Then
If LCase(Right(A$, 4)) <> ".pdf" Then A$ = A$ & ".pdf"
On Error Resume Next
Set PDFobject = GetObject(CHEMIN & A$)
If Err = 0 Then
Call OlePDF(Range("b" & i& & ""), CHEMIN & A$)
Else
Err.Clear
End If
On Error GoTo Erreur
End If
Next i&
Erreur:
Application.ScreenUpdating = True
End Sub
le 1 c'est 0000001.pdf le 100000 c'est 0100000.pdf.
ma série de chiffre est dans un classeur excel et meme si je lui force un format 0000000 dans la cellule la valeur récupérée dans la macro est 1 au lieu de 0000001.
Merci pour vos astuces
voila la macro que j'utilise
Option Explicit
'### Constante à adapter à votre usage ###
Const CHEMIN As String = "c:\"
'#########################################
Const TAG_ICONE As String = "___pmo_"
Sub InserePDF()
Dim PDFobject As Object
Dim S As Shape
Dim i&
Dim nbLig&
Dim A$
Dim toto As String
On Error GoTo Erreur
'Application.ScreenUpdating = False
For Each S In ActiveSheet.Shapes
If Left(S.Name, Len(TAG_ICONE)) = TAG_ICONE Then S.Cut
Next S
nbLig& = ActiveSheet.[a65536].End(xlUp).Row
For i& = 1 To nbLig&
A$ = Trim(Range("a" & i& & ""))
If A$ <> "" Then
If LCase(Right(A$, 4)) <> ".pdf" Then A$ = A$ & ".pdf"
On Error Resume Next
Set PDFobject = GetObject(CHEMIN & A$)
If Err = 0 Then
Call OlePDF(Range("b" & i& & ""), CHEMIN & A$)
Else
Err.Clear
End If
On Error GoTo Erreur
End If
Next i&
Erreur:
Application.ScreenUpdating = True
End Sub