IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

(XL-2010) Impression feuille active avec tous les liens hypertexte si .pdf


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    universite
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : universite
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut (XL-2010) Impression feuille active avec tous les liens hypertexte si .pdf
    je cherche a écrire une macro qui boucle sur les liens de la feuille active et ouvre le fichier lié s'il s'agit d'un fichier .pdf
    Chaque feuille de ce classeur sera ensuite imprimée.

    Quelqu'un peux m'aider??

    Bicker

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    Declare Function ShellExecute _
            Lib "shell32.dll" _
            Alias "ShellExecuteA" ( _
            ByVal hwnd As Long, _
            ByVal lpOperation As String, _
            ByVal lpFile As String, _
            ByVal lpParameters As String, _
            ByVal lpDirectory As String, _
            ByVal nShowCmd As Long) As Long
     
     
    Sub Test()
     
        Dim Lien As Hyperlink
     
        For Each Lien In ActiveSheet.Hyperlinks
     
            If LCase(Right(Lien.Address, 4)) = ".pdf" Then
     
                ShellExecute 0, "open", Lien.Address, vbNullString, vbNullString, 1
     
            End If
     
        Next Lien
     
    End Sub

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Une autre version sans API:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub OpenAdobePdfHyperlink()
        Const PDF_EXT = ".pdf"
        Dim Hyperlink As Hyperlink
     
        If Not ActiveWorkbook Is Nothing Then
            If Not ActiveWorkbook.ActiveSheet Is Nothing Then
                For Each Hyperlink In ActiveWorkbook.ActiveSheet.Hyperlinks
                    With Hyperlink
                        If Right(LCase(.Address), Len(PDF_EXT)) = PDF_EXT Then
                            .Follow NewWindow:=False
                        End If
                    End With
                Next
            End If
        End If
    End Sub

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    universite
    Inscrit en
    Décembre 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : universite
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2015
    Messages : 2
    Par défaut
    merci beaucoup Nouveau2. Le lien ouvre mais je voudrais qu'il s'imprime.

    J'ai trouvé un code qui semble bien mais il ouvre seulement les classeur .xls. Si il ouvrait les .pdf, ce serait nickel.

    le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub imprimerPageActiveEt_Liensclasseurs()
    Dim Lien As Hyperlink
    Dim I As Byte
     
    Application.ScreenUpdating = False
    'Imprime la feuille active
    ActiveSheet.PrintOut
     
    'Boucle sur les liens de la feuille active
    For Each Lien In ActiveSheet.Hyperlinks
        'Vérifie si le lien correspond à un classeur
        If Right(Range(Lien.Range.Address).Hyperlinks(1).Address, 4) = ".xls" Then
            'Déclenche le lien pour ouvrir le classeur
            Range(Lien.Range.Address).Hyperlinks(1).Follow NewWindow:=False
     
            'Imprime le classeur
            ActiveWorkbook.PrintOut
     
            'Referme le classeur
            ActiveWorkbook.Close
        End If
    Next
     
    Application.ScreenUpdating = True
    End Sub
    merci !

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Declare Function ShellExecute _
            Lib "shell32.dll" _
            Alias "ShellExecuteA" ( _
            ByVal hwnd As Long, _
            ByVal lpOperation As String, _
            ByVal lpFile As String, _
            ByVal lpParameters As String, _
            ByVal lpDirectory As String, _
            ByVal nShowCmd As Long) As Long
     
     
    Sub Test()
     
        Dim Lien As Hyperlink
     
        For Each Lien In ActiveSheet.Hyperlinks
     
            If LCase(Right(Lien.Address, 4)) = ".pdf" Then
     
                'l'ouvre...
                ShellExecute 0, "open", Lien.Address, vbNullString, vbNullString, 1
     
                'l'imprime...
                ShellExecute 0, "print", Lien.Address, vbNullString, Lien.Address, 0&
     
            End If
     
        Next Lien
     
    End Sub

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2014, 13h08
  2. Réponses: 3
    Dernier message: 19/02/2011, 23h01
  3. [XL-2000] Problème d'activation de sheet avec les liens hypertexte
    Par jordan973 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/07/2010, 22h07
  4. activer avec vba un lien hypertexte contenu dans une page html
    Par epaminondas dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/05/2008, 10h55
  5. Réponses: 3
    Dernier message: 24/04/2007, 19h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo