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à
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 !
Ensuite, indiquer clairement l'ojectif à réaliser ! On croit d'abord comprendre que tu veux imprimer une liste de liens hypertexte !?
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 !