Err d'exécution '438': Propriété ou méthode non gérée par cet objet

Bonjour le Forum,

Je reviens vers vous concernant mon projet car je bloque sur un nouveau message d'erreur!

Lorsque je regarde la ligne en tort il s'agit de ce Sub :

Sub impr_Liensclasseurs()
Dim Lien As Hyperlink
    For Each Lien In ActiveSheet.Hyperlinks
    With ActiveSheet.Hyperlinks
        .Orientation = xlLandscape
        .Zoom = 70
        ExecuteFile Lien.Address, printfile
    End With
    Next Lien
End Sub

Et la ligne surlignée est celle-ci :

.Orientation = xlLandscape

Comme vous l'aurez compris, je souhaite imprimer une liste de lien hypertexte en modifiant les paramétrages d'impression.

Cette fois si je vous met le fichier

Merci d'avance pour votre aide.

Bonjour,

Tu devais bien te douter que Orientation et Zoom ne sont pas des propriétés d'un objet-collection hyperlinks, mais d'un objet PageSetup !

On ne voit pas bien ce que fait tout ça dans ta boucle, qui ne sert d'ailleurs à rien dans le code tel qu'il est écrit. Et ton fichier ne révèle pas tes intentions !

MFerrand,

ton fichier ne révèle pas tes intentions !

Alors pour la petite histoire, j'ai deux collègues qui reçoivent régulièrement des dossiers zipper avec énormément de fichiers Excel, PDF, PNG et/ou Word et chacun d'entre eux doivent être ouvert et imprimer.

Une tâche plutôt récurrente et répétitive qui justifie donc la création de ce fichier.

J'ai d’abord trouver un fichier très bien conçu qui me permet de répertorier chacun des fichiers dans un dossier sélectionner à l'aide d'un UserFrom.

Ce fichier permet non seulement de sortir nom, poids, type de fichier etc mais il permet aussi d'extraire le lien hypertexte de chacun des fichiers du dossier sélectionner.

J'ai donc chercher une macro permettant d'imprimer tout les liens hypertexte présent dans la "Feuil1" du classeur actif.

'https://openclassrooms.com/forum/sujet/vba-excel-automatisation-impression-lien-hypertext
Option Explicit

Public Const SW_SHOWNORMAL As Long = 1

Public Enum actionType
  openfile
  printfile
End Enum

Public 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

Function ExecuteFile(fileName As String, action As actionType)
Dim sAction As String

  Select Case action
    Case 0 ' openfile
      sAction = "Open"
    Case 1 ' printfile
      sAction = "Print"
  End Select

  ShellExecute 0, sAction, fileName, vbNullString, "", SW_SHOWNORMAL

End Function

Sub impr_Liensclasseurs()
Dim Lien As Hyperlink

    For Each Lien In ActiveSheet.Hyperlinks
         ExecuteFile Lien.Address, printfile
    Next Lien

End Sub

Retour à mon problème actuel

Tu devais bien te douter que Orientation et Zoom ne sont pas des propriétés d'un objet-collection hyperlinks, mais d'un objet PageSetup !

On ne voit pas bien ce que fait tout ça dans ta boucle

Eh bien mes collègues souhaitent que les fichiers Excel à imprimer le soient en format paysage et zoomer à 70%

J'ai donc essayer de bidouiller cette macro pour pouvoir faire une impression en paysage (que j'automatiserais plus tard avec un UserFrom pour laisser le choix à l'utilisateur).

Voilà Si il y a tout autre renseignement que tu veux savoir je te répondrais avec joie !

EDIT :

J'ai chercher une autre méthode pour imprimer les fichiers via leur lien hypertexte et l'enregistreur de commande m'a bien aidé

Sub Macro1()
    Range("B2").Select
    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .Orientation = xlLandscape 'sera remplacer par une variable
        .Zoom = 70 'sera remplacer par une variable
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
    ActiveWindow.Close False 'Ferme le fichier
End Sub

Maitenant il faut que j'arrive à boucler ce code pour qu'il le fasse sur chaque ligne présent de la Feuil1 !

Bonjour,

Ce que tu aurais de mieux à faire, c'est d'illustrer les données de ton classeur avec un échantillon représentatif ! Tant qu'il ne contient rien, on aura du mal à se faire une idée de ce que tu veux faire...

Ensuite, indiquer clairement l'ojectif à réaliser ! On croit d'abord comprendre que tu veux imprimer une liste de liens hypertexte !? Ce qui paraît simple : soit tes liens figurent sur la feuille et il n'y a qu'à mettre en page et imprimer, soit il faut constituer la liste, et donc on récupère l'adresse de chacun pour les lister et on rejoint le premier cas.

Mais tu te lances dans toute autre chose en activant tes liens...

Plutôt que d'aller pêcher des codes plus ou moins inadéquats un peu n'importe où, tu gagnerais du temps à expliquer ta question de façon qu'on la comprenne sans ambiguïté et qu'on puisse te proposer un code efficace pour répondre exactement à ce que tu souhaites !

Rechercher des sujets similaires à "err execution 438 propriete methode geree cet objet"