Apercu pdf dans userform

ngexcel

XLDnaute Occasionnel
bonjour
je voudrais modifier la macro de se fichier afin d avoir un aperçu d'un fichier excel au lieu d un pdf
(le fichier est a copier dans le répertoire ou est stocké les fichiers pdf et excel)

merci à tous
 

job75

XLDnaute Barbatruc
Re : Apercu pdf dans userform

Re, hello tatiak,

J'ai encore modifié le post #13 avec pour les macros des 2 logos :

Code:
If Not FichierChoisi Like "*?.pdf" Then Exit Sub

Au cas où la TextBox FichierChoisi serait modifiée manuellement.

A+
 

ngexcel

XLDnaute Occasionnel
Re : Apercu pdf dans userform

Bonsoir Job75

j ai teste ça fonctionne j ai bien le fichier ouvert en premier plan
par contre quand je ferme le fichier je revient sur le bouton GO pour ré ouvrir le userform ça c'est pas grave
par contre je suis obligé de fermer le userform puis le ré ouvrir pour que la mise se face de l apercu du fichier que j avais ouvert pour une modif éventuel
mon projet est proche de la perfection grâce a vous merci encore
 

ngexcel

XLDnaute Occasionnel
Re : Apercu pdf dans userform

Bonsoir
j ai fais les modifs du post 13
j ouvre bien le fichier excel a partir du userform c'est ok
j e le ferme je reviens bien sur l userform ouvert c'est ok

mais si j ai fais une modif sur un fichier excel j ai pas la mise a jour sur l aperçu je dois fermer puis ré ouvrir
je suis dessolé je dois pas comprendre si chez vous ca fonctionne pouvez vous me remettre le fichier en ligne
merci
 

job75

XLDnaute Barbatruc
Re : Apercu pdf dans userform

Bonjour ngexcel, le forum,

J'avais mal testé le fichier (2) : tous les fichiers PDF étaient recréés à chaque ouverture.

Il faut traiter les dates/heures sous forme de nombres.

[EDIT] J'ai aussi ajouté les Application.EnableEvents pour neutraliser les macros du ThisWorkbook.

Enfin j'ai ajouté On Error Resume Next au cas où un fichier PDF reste ouvert.

En effet dans ce cas le fichier PDF ne peut pas être recréé.

Code:
Private Sub UserForm_Initialize()
Dim F As Worksheet, rep$, d As Object, nf$, a(), n&, t, i&, x$, b
Me.Height = Application.Height
Me.Width = Application.Width
Image3.Visible = False 'logo Excel
Set F = Feuil2 'CodeName de la feuille de mémorisation, à adapter
If Répertoire = "" Then Répertoire = ThisWorkbook.Path 'à adapter
rep = Répertoire & "\"
'---liste des classeurs Excel---
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
nf = Dir(rep & "*.xls*")
While nf <> ""
  If Not nf Like "*.pdf" And nf <> ThisWorkbook.Name Then
    ReDim Preserve a(1, n) 'base 0
    a(0, n) = rep & nf
    a(1, n) = CDbl(FileDateTime(a(0, n))) 'nombre
    d(a(0, n) & Chr(1) & a(1, n)) = ""
    n = n + 1
  End If
  nf = Dir
Wend
'---repérage des classeurs modifiés---
t = F.[A2].CurrentRegion.Resize(, 2).Value2 'date/heure sous forme de nombre
For i = 1 To UBound(t)
  x = t(i, 1) & Chr(1) & t(i, 2)
  If d.exists(x) Then d.Remove x
Next
'---création des fichiers PDF---
If d.Count Then
  b = d.keys
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False 'si un classeur Excel est déjà ouvert
  Application.EnableEvents = False 'désactive les évènements
  On Error Resume Next 'si le fichier PDF est ouvert
  For i = 0 To UBound(b)
    x = Split(b(i), Chr(1))(0)
    With Workbooks.Open(x)
      .Sheets(1).ExportAsFixedFormat xlTypePDF, x & ".pdf" '1ère feuille
      .Close False
    End With
  Next
  Application.EnableEvents = True
  Application.ScreenUpdating = True
End If
'---mémorisation des classeurs Excel---
If n Then F.[A2].Resize(n, 2) = Application.Transpose(a)
F.[A2].Offset(n).Resize(Rows.Count - n - 1, 2).Delete xlUp
F.Columns("A:B").AutoFit
'---Liste des fichiers PDF---
ChoixFichier.Clear
n = 0
nf = Dir(rep & "*.pdf")
While nf <> ""
  ChoixFichier.AddItem nf
  nf = Dir
  n = n + 1
Wend
nbFichiers = n
End Sub
Fichier (3).

A+
 

Pièces jointes

  • Form_FichiersListe(3).xlsm
    56.7 KB · Affichages: 34
Dernière édition:

ngexcel

XLDnaute Occasionnel
Re : Apercu pdf dans userform

Bonjour et encore merci c'est exactement ça quel temps de gagné il ne recrée plus les fichiers pdf existant (j ai environ 100 fichiers )
pour moi ça va
pour un utilisateur lambda j'expliquerai que lorsqu'il ouvrira le fichier en excel et qu il l enregistre après une modification il devra fermer le userform par la croix puis le recouvrir pour que l 'affichage de sa modif apparaît c'est qu un détail
super boulot
 

job75

XLDnaute Barbatruc
Re : Apercu pdf dans userform

Re,

pour un utilisateur lambda j'expliquerai que lorsqu'il ouvrira le fichier en excel et qu il l enregistre après une modification il devra fermer le userform par la croix puis le recouvrir pour que l 'affichage de sa modif apparaît c'est qu un détail

Pour vous éviter ces explications, voyez ce fichier (4) avec ces modifications :

Code:
Private Sub Label6_Click() 'mise à jour des fichiers PDF
memrep = Répertoire
memfich = FichierChoisi
Application.OnTime 1, "afficheform"
Unload Me
DoEvents
End Sub

Private Sub UserForm_Initialize()
'-----
If memrep <> "" Then Répertoire = memrep: memrep = ""
'-----
If memfich <> "" Then FichierChoisi = memfich: memfich = ""
End Sub
Je ne suis pas certain que ça fonctionne bien tout le temps, c'est à tester.

J'espère que DoEvents permettra d'éviter le problème de temporisation.

Bonne soirée.
 

Pièces jointes

  • Form_FichiersListe(4).xlsm
    60.8 KB · Affichages: 36
Dernière édition:

job75

XLDnaute Barbatruc
Re : Apercu pdf dans userform

Re,

J'ai ajouté une MsgBox pour obliger la fermeture des fichiers PDF.

Je crois me souvenir qu'il y a parfois des problèmes avec Err sur Excel 2007, si c'est le cas j'utiliserai une autre méthode.

Noter en passant que si l'on introduit un fichier Word nommé par exemple aaa.xls.docx il y aura constamment le message !!!

Bah ce sera un moyen de savoir qu'il y a cette plaisanterie...

A+
 
Dernière édition:

ngexcel

XLDnaute Occasionnel
Re : Apercu pdf dans userform

Bonjour et merci ca tourne surper bien juste j arrive à ouvrir un fichier excel quand il me demande le mot de passe rien quand fermant sur la croix sans même mettre un mot de passe à par ca Ç top
Merci pour tout
 

job75

XLDnaute Barbatruc
Re : Apercu pdf dans userform

Bonjour ngexcel,

On peut arriver à faire beuguer F_ListeFichiersRep.Hide ***.

J'ai donc encore modifié le fichier (4) post #28 avec :

Code:
Private Sub Workbook_Deactivate()
On Error Resume Next
F_ListeFichiersRep.Hide
End Sub
*** Edit : je découvre que F_ListeFichiersRep.Hide déclenche UserForm_Initialize.

Pour faire beuguer, sans On Error Resume Next :

- ouvrez le fichier (4)

- effacez les données de la feuille "Listes"

- ouvrez un classeur Excel quelconque du répertoire.

A+
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
268
Réponses
8
Affichages
486