forcer un format de nombre en texte

sri75

XLDnaute Occasionnel
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
 

sri75

XLDnaute Occasionnel
Re : forcer un format de nombre en texte

Bonjour sri75,

à tester :

Code:
A$ = format(clng(iif(right(A$,4) = ".pdf",Trim(left(Range("a" & i& & "").value,len(Range("a" & i& & "").value)-4)),Trim(Range("a" & i& & "").value))),"0000000") & ".pdf"

Bonjour, malheureusent ca n'a pas l'air de marcher.

Et si plus simplement on forçait le format : ex si le nombre est 1 je concatene 000000

si le nombre est 11 je concatene 00000 etc....?
 

tototiti2008

XLDnaute Barbatruc
Re : forcer un format de nombre en texte

Bonjour PascalXLD,
Re,

PascalXLD
de toute façon je propose la même chose que toi, j'ai juste essayé de gérer le cas où l'extension .pdf est déjà saisie... mais ça donnerait plutôt ça :

Code:
    If Len(A$) > 4 Then
        A$ = Format(CLng(IIf(Right(A$, 4) = ".pdf", Trim(Left(Range("a" & i& & "").Value, Len(Range("a" & i& & "").Value) - 4)), Trim(Range("a" & i& & "").Value))), "0000000") & ".pdf"
    Else
        A$ = Format(CLng(A$), "0000000") & ".pdf"
    End If

sri75 :
dans
Dim A$
le $ signifie que c'est un String donc pas besoin de "as String"
 
Dernière édition:

sri75

XLDnaute Occasionnel
Re : forcer un format de nombre en texte

Ok c'est bon avec l'astuce de Pascal, merci à tous pour votre aide sur ce sujet.

Si vous etes toujours d'attaque j'ai un autre post de ce jopur sur les pdf pour faire une recherche dans le pdf.

merci encore

Stephane
 

Discussions similaires

Réponses
2
Affichages
300

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji