Teste et propriéte d'un lien PDF sur excel 2007

Signaler
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009
-
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009
-
Bonjour,

Après une tres longue absence je me remet au VB sur excel 2007. Autant dire que je ne me rappel plus de rien !

Voici mon probleme :

J'ai une liste avec 5000 lien hypertexte qui me renvoie à un document PDF. Je voudrai qu'une macro puisse ouvrir les liens pdf un par uns, que la macro verifie (test) si le lien est valide (sinon afficher un message d'erreur).

Puis je voudrai qu'il me recupere le nombre de pages et le titre de la premiere page du document PDF et qu'il me le reporte dans une cellule...

Je travail sur XP et excel 2007.

Merci par avance de votre aide...

J'ecoute toutes propositions qui me permettrai de ne pas me faire les 5000 liens car je vais en avoir pour des mois !

laurent

9 réponses

Messages postés
8
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
14 juin 2008

pour vérifier la pertinence des liens pas de problème, par
contre pour lire du pdf et récupérer du texte à partir d’excel ?



Visiblement tu seras obligé de les ouvrir.
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009

Ce serait deja un grand pas pour moi de verifier la pertinence des liens.

Ensuite ca ne pose aucun probleme de les ouvrirs a partir de la macro mais j'essai d'eviter de les ouvrir moi car il y en a 5000 comme ca...

laurent
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009

Bonjour, je n'arrive toujours pas à trouver une solution, ca deviens urgent !! please !!

J'ai fais le lien ci-dessous mais je n'arrive toujours pas à afficher les lien érroné. Je dois controler la colonne 20, et je reporte mon info dans la colonne 1. Probleme il m'affiche toujours qu'il ne trouve pas les liens alors que certains existe...

Public Sub checklinks()
    Dim chemn As String
    Dim nom As String
    Dim typ
    Dim niv
    Dim struc
    Dim d
    Dim structure
    Dim h As Hyperlink
    Dim i, j, k
    Dim s() As String
    Dim s1() As String
    'Dim f As File
    'Dim s As New FileSystemObject
    'Dim w As Worksheet
   
   
    k = 1
 
    Set w = Workbooks(1).Worksheets(1)
    w.Select
    For i = 7 To 6000
       
     
           If w.Cells(i, 20).Hyperlinks.Count = 1 Then  'vérifie si la cellule contient un lien hypertexte
               nom = w.Cells(i, 20).Hyperlinks(1).Name
               chemn = w.Cells(i, 20).Hyperlinks(1).Address
                If nom = "" And chemn <> "" Then
                    w.Cells(i, 1).Value = "lien sans nom"
                End If
                If nom <> "" And chemn = "" Then
                    w.Cells(i, 1).Value = "Nom sans lien"
                End If
                s = Split(chemn, "/")
                s1 = Split(s(UBound(s)), ".")
                If s1(0) <> nom Then
                    w.Cells(i, 1).Value = "Incohérence de noms"
                    'w.Cells(i, 20).Hyperlinks(1).Follow
                End If
            End If
    Next i
    Set w = Nothing

End Sub

laurent
Messages postés
8
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
14 juin 2008

toujours au plus simple, ça devrait donner quelque chose comme ça

Sub BonsLiens()
Set ff = ActiveSheet ' les liens sont attachés à la feuille, pas aux cellules
For Each i In ff.Hyperlinks
    vaddress = i.Address 'le nom complet
    vnc = i.Range.Column 'la colonne
    vnl = i.Range.Row 'la ligne
    fic = Dir(vaddress)
    If fic <> "" Then
        Cells(vnl, vnc).Interior.ColorIndex = 4 ' ou cells(vnl,1)="Ok"
      Else
        Cells(vnl, vnc).Interior.ColorIndex = 3 ' ou cells(vnl,1)="c'est pas bon hein "
    End If
Next i
End Sub

bon courage pour la suite.
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009

Merci pour ton aide, ca m'aide deja pas mal.

Ce prog arrive a faire la différence en les liens hypertexte et du simple texte.  Mais il n'arrive pas à voir les liens hypertexte qui ne fonctionnent pas ou qui ont un chemin d'adresse érroné.

Si vous pouviez aussi m'aider la dessus...

En résumé il me manque :

La vérification des liens érronés ( chemin d'acces ou faux hypertexte)
Le nombre de pages du PDF ...

Merci de votre aide

laurent
Messages postés
8
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
14 juin 2008

je ne comprends pas vraiment le probléme.
Le code traite tous les liens hypertextes car on utilise la collection 'hyperlinks'.
Si des cellules ne sont pas traitées alors ce ne sont pas des liens H.
Il faut se méfier d'xl, ce n'est pas ce qu'il gère le mieux, après des manipulations sur un fichier ( suppressions, tries...) il arrive que les liens ne correpondent plus aux cellules même si celles-ci ont conservé le format du lien H.
Pour ton affaire il faudrait faire une expertise plus complète du fichier, je n'est pas assez de données.
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009

Je vais essayer de m'exprimer un peu mieux...

Par exemple si le programme test un lien X, et que ce lien est bien un hypertexte, le programme considere que ce lien est bon.

Par contre si ce lien est bien un hypertexte mais que le chemin d'acces (adresse C\dossier_x) est erronée, le programme ne met pas une alerte. Quand je clic sur ce lien érroné, excel m'affiche " Impossible d'ouvrir le fichier spécifié ".

Je voudrai avoir une liste des liens corrompue afin de les "réparer"...

Ou alors c'est moi qui exploite mal ton programme (je suis une bille sur Vb)

laurent
Messages postés
8
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
14 juin 2008

je me suis fait un fichier de test avec quelques liens bons et mauvais..
je lance le code sur ma feuille et les bons sont en vert et les liens qui pointent sur rien passent en rouge. Si ils ne  changent pas de couleur,  ce ne sont pas des liens.
...Ou alors c'est les droits d'accès sur un serveur qui sont en cause, tes droits dans ce ( ces ) répertoire sont peut-être limités à la vision des noms de  fichiers mais pas à leur ouverture? si c'est un serveur d'entreprise vois avec un administrateur.   
 
Messages postés
12
Date d'inscription
mardi 27 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2009

vaddress = i.Address 'le nom complet
    vnc = i.Range.Column 'la colonne
    vnl = i.Range.Row 'la ligne

Que je ne me plante pas :
Le nom complet = nom du fichier excel
et les 2 autres je n'y touche pas ...

c'est bien ca ?
laurent