Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même
si je change la disposition en paysage. Je ne trouve pas où modifier les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y
change rien.
Merci d'avance pour vos lumières
Bonne journée
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour Michèle,
Tout ceci à copier dans un module standard. Cela imprime la procédure que tu déclareras dans la procédure "Imprimer Une procédure"
Attention à ta requête ...si tu ne la scindes pas en plusieurs lignes et qu'elle est très longue, elle risque forcément de sortir des limites d'impression d'une feuille et requièra plus d'une feuille. Je n'ai pas tout testé ces possibilités... à toi de jouer !
'Déclarer Variable dans le haut du module Dim CeModule As String
Sub ImprimerUneProcédure()
'Important : 'La seule restriction, ne pas insérer cette procédure 'dans le même module que la procédure à imprimer
Dim LaProcedure As String, LeClasseur As String Dim LeModule As String, A As Object
'******Définir ces 3 variables suivantes******
'Nom du classeur contenant la procédure LeClasseur = ThisWorkbook.Name
'Nom de la procédure à imprimer 'Attention à la casse ... LaProcedure = "ImprimerLeCode"
'nom du module où est écrite cette procédure 'Attention à la casse CeModule = "Module2" '**********************************************
'La variable module est déterminé par la fonction Set A = fnThisVBComponent(ThisWorkbook, LaProcedure) If Not A Is Nothing Then LeModule = A.Name Else MsgBox "Procédure non trouvée." _ , vbInformation + vbOKOnly, "Opération annulée" Exit Sub Set A = Nothing End If
ImprimerToutLeCode LeClasseur, LeModule, LaProcedure Set A = Nothing
End Sub
Function fnThisVBComponent(oBk As Workbook, _ ByVal sUniqueString As String) As Object 'Original crée par Stephen Bullen 'et adapter par moi ... Dim oVBC As Object
'Loop through the VBComponents in the 'given workbook's VBProject For Each oVBC In oBk.VBProject.VBComponents
'Using it's code module With oVBC.CodeModule
'See if we can find the unique string If .Find(sUniqueString, 1, 1, .CountOfLines, _ 1000, True, True, False) Then If oBk.Name = ThisWorkbook.Name Then If oVBC.Name <> CeModule Then 'Found it, so return the 'VBComponent where it was found Set fnThisVBComponent = oVBC Exit For End If End If End If End With Next
End Function
Sub ImprimerToutLeCode(NomClasseur As String, _ LeModule As String, Procedure As String)
Dim VBComp As Object Dim Texte As String, Ficher As String
Fichier = "C:ImprimerCode.txt"
Set VBComp = Workbooks(NomClasseur).VBProject. _ VBComponents(LeModule).CodeModule 'ligne du début de la procédure Ligne = VBComp.ProcBodyLine(Procedure, vbext_pk_Proc) 'Nombre de ligne de la procédure Nbligne = VBComp.ProcCountLines(Procedure, vbext_pk_Proc)
Open Fichier For Output As #1 With VBComp If .CountOfLines <> 0 Then Texte = vbCrLf & vbCrLf & vbCrLf Texte = Texte & "*******Nom du Module : " & .Name _ & "*******" & vbCrLf & vbCrLf & vbCrLf Texte = Texte & .Lines(Ligne, Nbligne) Texte = Texte & vbCrLf & vbCrLf Print #1, Texte End If End With Close #1
'Imprimer le fichier abc.txt sans voir le fichier à l'écran. ShellExecute hwnd, "print", Fichier, "", "", SW_HIDE
'Arrêt pour charger le buffer de l'imprimante 'La valeur de 5 secondes est aléatoire... 'cela pourrait être moins. Application.Wait (Now + TimeValue("0:00:05"))
'détruit le fichier sans possibilité de récupération Kill Fichier End Sub
Salutations!
"Michèle" a écrit dans le message de news: Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même si je change la disposition en paysage. Je ne trouve pas où modifier les paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y change rien. Merci d'avance pour vos lumières Bonne journée
Michèle
Bonjour Michèle,
Tout ceci à copier dans un module standard. Cela imprime la procédure que tu déclareras dans la procédure "Imprimer Une
procédure"
Attention à ta requête ...si tu ne la scindes pas en plusieurs lignes et qu'elle est très longue, elle risque forcément
de sortir des limites d'impression d'une feuille et requièra plus d'une feuille. Je n'ai pas tout testé ces
possibilités... à toi de jouer !
'Déclarer Variable dans le haut du module
Dim CeModule As String
Sub ImprimerUneProcédure()
'Important :
'La seule restriction, ne pas insérer cette procédure
'dans le même module que la procédure à imprimer
Dim LaProcedure As String, LeClasseur As String
Dim LeModule As String, A As Object
'******Définir ces 3 variables suivantes******
'Nom du classeur contenant la procédure
LeClasseur = ThisWorkbook.Name
'Nom de la procédure à imprimer
'Attention à la casse ...
LaProcedure = "ImprimerLeCode"
'nom du module où est écrite cette procédure
'Attention à la casse
CeModule = "Module2"
'**********************************************
'La variable module est déterminé par la fonction
Set A = fnThisVBComponent(ThisWorkbook, LaProcedure)
If Not A Is Nothing Then
LeModule = A.Name
Else
MsgBox "Procédure non trouvée." _
, vbInformation + vbOKOnly, "Opération annulée"
Exit Sub
Set A = Nothing
End If
ImprimerToutLeCode LeClasseur, LeModule, LaProcedure
Set A = Nothing
End Sub
Function fnThisVBComponent(oBk As Workbook, _
ByVal sUniqueString As String) As Object
'Original crée par Stephen Bullen
'et adapter par moi ...
Dim oVBC As Object
'Loop through the VBComponents in the
'given workbook's VBProject
For Each oVBC In oBk.VBProject.VBComponents
'Using it's code module
With oVBC.CodeModule
'See if we can find the unique string
If .Find(sUniqueString, 1, 1, .CountOfLines, _
1000, True, True, False) Then
If oBk.Name = ThisWorkbook.Name Then
If oVBC.Name <> CeModule Then
'Found it, so return the
'VBComponent where it was found
Set fnThisVBComponent = oVBC
Exit For
End If
End If
End If
End With
Next
End Function
Sub ImprimerToutLeCode(NomClasseur As String, _
LeModule As String, Procedure As String)
Dim VBComp As Object
Dim Texte As String, Ficher As String
Fichier = "C:ImprimerCode.txt"
Set VBComp = Workbooks(NomClasseur).VBProject. _
VBComponents(LeModule).CodeModule
'ligne du début de la procédure
Ligne = VBComp.ProcBodyLine(Procedure, vbext_pk_Proc)
'Nombre de ligne de la procédure
Nbligne = VBComp.ProcCountLines(Procedure, vbext_pk_Proc)
Open Fichier For Output As #1
With VBComp
If .CountOfLines <> 0 Then
Texte = vbCrLf & vbCrLf & vbCrLf
Texte = Texte & "*******Nom du Module : " & .Name _
& "*******" & vbCrLf & vbCrLf & vbCrLf
Texte = Texte & .Lines(Ligne, Nbligne)
Texte = Texte & vbCrLf & vbCrLf
Print #1, Texte
End If
End With
Close #1
'Imprimer le fichier abc.txt sans voir le fichier à l'écran.
ShellExecute hwnd, "print", Fichier, "", "", SW_HIDE
'Arrêt pour charger le buffer de l'imprimante
'La valeur de 5 secondes est aléatoire...
'cela pourrait être moins.
Application.Wait (Now + TimeValue("0:00:05"))
'détruit le fichier sans possibilité de récupération
Kill Fichier
End Sub
Salutations!
"Michèle" <michele@bondilette.net> a écrit dans le message de news:OnatFZGeEHA.1656@TK2MSFTNGP09.phx.gbl...
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même
si je change la disposition en paysage. Je ne trouve pas où modifier les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y
change rien.
Merci d'avance pour vos lumières
Bonne journée
Tout ceci à copier dans un module standard. Cela imprime la procédure que tu déclareras dans la procédure "Imprimer Une procédure"
Attention à ta requête ...si tu ne la scindes pas en plusieurs lignes et qu'elle est très longue, elle risque forcément de sortir des limites d'impression d'une feuille et requièra plus d'une feuille. Je n'ai pas tout testé ces possibilités... à toi de jouer !
'Déclarer Variable dans le haut du module Dim CeModule As String
Sub ImprimerUneProcédure()
'Important : 'La seule restriction, ne pas insérer cette procédure 'dans le même module que la procédure à imprimer
Dim LaProcedure As String, LeClasseur As String Dim LeModule As String, A As Object
'******Définir ces 3 variables suivantes******
'Nom du classeur contenant la procédure LeClasseur = ThisWorkbook.Name
'Nom de la procédure à imprimer 'Attention à la casse ... LaProcedure = "ImprimerLeCode"
'nom du module où est écrite cette procédure 'Attention à la casse CeModule = "Module2" '**********************************************
'La variable module est déterminé par la fonction Set A = fnThisVBComponent(ThisWorkbook, LaProcedure) If Not A Is Nothing Then LeModule = A.Name Else MsgBox "Procédure non trouvée." _ , vbInformation + vbOKOnly, "Opération annulée" Exit Sub Set A = Nothing End If
ImprimerToutLeCode LeClasseur, LeModule, LaProcedure Set A = Nothing
End Sub
Function fnThisVBComponent(oBk As Workbook, _ ByVal sUniqueString As String) As Object 'Original crée par Stephen Bullen 'et adapter par moi ... Dim oVBC As Object
'Loop through the VBComponents in the 'given workbook's VBProject For Each oVBC In oBk.VBProject.VBComponents
'Using it's code module With oVBC.CodeModule
'See if we can find the unique string If .Find(sUniqueString, 1, 1, .CountOfLines, _ 1000, True, True, False) Then If oBk.Name = ThisWorkbook.Name Then If oVBC.Name <> CeModule Then 'Found it, so return the 'VBComponent where it was found Set fnThisVBComponent = oVBC Exit For End If End If End If End With Next
End Function
Sub ImprimerToutLeCode(NomClasseur As String, _ LeModule As String, Procedure As String)
Dim VBComp As Object Dim Texte As String, Ficher As String
Fichier = "C:ImprimerCode.txt"
Set VBComp = Workbooks(NomClasseur).VBProject. _ VBComponents(LeModule).CodeModule 'ligne du début de la procédure Ligne = VBComp.ProcBodyLine(Procedure, vbext_pk_Proc) 'Nombre de ligne de la procédure Nbligne = VBComp.ProcCountLines(Procedure, vbext_pk_Proc)
Open Fichier For Output As #1 With VBComp If .CountOfLines <> 0 Then Texte = vbCrLf & vbCrLf & vbCrLf Texte = Texte & "*******Nom du Module : " & .Name _ & "*******" & vbCrLf & vbCrLf & vbCrLf Texte = Texte & .Lines(Ligne, Nbligne) Texte = Texte & vbCrLf & vbCrLf Print #1, Texte End If End With Close #1
'Imprimer le fichier abc.txt sans voir le fichier à l'écran. ShellExecute hwnd, "print", Fichier, "", "", SW_HIDE
'Arrêt pour charger le buffer de l'imprimante 'La valeur de 5 secondes est aléatoire... 'cela pourrait être moins. Application.Wait (Now + TimeValue("0:00:05"))
'détruit le fichier sans possibilité de récupération Kill Fichier End Sub
Salutations!
"Michèle" a écrit dans le message de news: Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même si je change la disposition en paysage. Je ne trouve pas où modifier les paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y change rien. Merci d'avance pour vos lumières Bonne journée
Michèle
damien
Bonjour Michèle
menu Fichier - Mise en page Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas sélectionné. D'après ce que tu écris, il devrait être sélectionné avec 1 page en largeur et 2 pages en hauteur. Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même si je change la disposition en paysage. Je ne trouve pas où modifier les paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y change rien. Merci d'avance pour vos lumières Bonne journée
Michèle
Bonjour Michèle
menu Fichier - Mise en page
Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas
sélectionné.
D'après ce que tu écris, il devrait être sélectionné avec 1 page en
largeur et 2 pages en hauteur.
Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même
si je change la disposition en paysage. Je ne trouve pas où modifier les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y
change rien.
Merci d'avance pour vos lumières
Bonne journée
menu Fichier - Mise en page Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas sélectionné. D'après ce que tu écris, il devrait être sélectionné avec 1 page en largeur et 2 pages en hauteur. Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même si je change la disposition en paysage. Je ne trouve pas où modifier les paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y change rien. Merci d'avance pour vos lumières Bonne journée
Michèle
Michèle
Merci à tous les deux : je vérifie cela dès demain Bonne journée
Michèle "damien" a écrit dans le message de news:
Bonjour Michèle
menu Fichier - Mise en page Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas sélectionné. D'après ce que tu écris, il devrait être sélectionné avec 1 page en largeur et 2 pages en hauteur. Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même
si je change la disposition en paysage. Je ne trouve pas où modifier les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y
change rien. Merci d'avance pour vos lumières Bonne journée
Michèle
Merci à tous les deux : je vérifie cela dès demain
Bonne journée
Michèle
"damien" <gwenn@laposte.net> a écrit dans le message de news:
mn.13837d484cc2157c.11105@laposte.net...
Bonjour Michèle
menu Fichier - Mise en page
Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas
sélectionné.
D'après ce que tu écris, il devrait être sélectionné avec 1 page en
largeur et 2 pages en hauteur.
Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête
dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages
même
si je change la disposition en paysage. Je ne trouve pas où modifier
les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter
dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes
n'y
change rien.
Merci d'avance pour vos lumières
Bonne journée
Merci à tous les deux : je vérifie cela dès demain Bonne journée
Michèle "damien" a écrit dans le message de news:
Bonjour Michèle
menu Fichier - Mise en page Dans l'onglet page, regarde si pour échelle, Ajuster n'est pas sélectionné. D'après ce que tu écris, il devrait être sélectionné avec 1 page en largeur et 2 pages en hauteur. Sélectionne réduire, mets 100% et ça devrait aller
bon après-midi
Damien
Bonjour,
Je ne connais pas bien excel 2003. J'ai besoin d'imprimer une requête dont
je ne suis pas l'auteur. L'impression s'obstine à se faire sur 2 pages même
si je change la disposition en paysage. Je ne trouve pas où modifier les
paramètres de mise en page ; en tout cas, tout ce que j'ai pu tenter dans la
rubrique "mise en page" est sans effet. Même la suppression de colonnes n'y
change rien. Merci d'avance pour vos lumières Bonne journée