Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un module
VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans un fichier
texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un module
VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans un fichier
texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un module
VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans un fichier
texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements,
mais comment, du 26ème au 50ème passer à trois autres colonnes me donnant
sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par plaisir,
étant retraité, cela me permet de ne pas abandonner la programmation que
j'ai commencé à pratiquer, en différents langages, depuis 1980 ; et
peut-être aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel
j'ai développé pas mal de modules programmés et en particulier des états
me permettant de faire exactement ce que je voulais au point de vue de la
mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements,
mais comment, du 26ème au 50ème passer à trois autres colonnes me donnant
sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par plaisir,
étant retraité, cela me permet de ne pas abandonner la programmation que
j'ai commencé à pratiquer, en différents langages, depuis 1980 ; et
peut-être aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel
j'ai développé pas mal de modules programmés et en particulier des états
me permettant de faire exactement ce que je voulais au point de vue de la
mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" <jsansp@amfra.net> a écrit dans le message de news:
uJ3da1f8JHA.3556@TK2MSFTNGP04.phx.gbl...
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements,
mais comment, du 26ème au 50ème passer à trois autres colonnes me donnant
sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par plaisir,
étant retraité, cela me permet de ne pas abandonner la programmation que
j'ai commencé à pratiquer, en différents langages, depuis 1980 ; et
peut-être aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel
j'ai développé pas mal de modules programmés et en particulier des états
me permettant de faire exactement ce que je voulais au point de vue de la
mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" <F3UB@wanadoo.fr> a écrit dans le message de news:
u6253Tk8JHA.1252@TK2MSFTNGP04.phx.gbl...
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" <jsansp@amfra.net> a écrit dans le message de news:
uJ3da1f8JHA.3556@TK2MSFTNGP04.phx.gbl...
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" <F3UB@wanadoo.fr> a écrit dans le message de news:
u6253Tk8JHA.1252@TK2MSFTNGP04.phx.gbl...
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" <jsansp@amfra.net> a écrit dans le message de news:
uJ3da1f8JHA.3556@TK2MSFTNGP04.phx.gbl...
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" <F3UB@wanadoo.fr> a écrit dans le message de news:
u6253Tk8JHA.1252@TK2MSFTNGP04.phx.gbl...
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" <jsansp@amfra.net> a écrit dans le message de news:
uJ3da1f8JHA.3556@TK2MSFTNGP04.phx.gbl...
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour,
As-tu regardé du côté de la mise en page de ton état?
Tu vas dans Fichier/Mise en page, puis dans l'onglet Colonnes et là tu
choisis les paramètres qui te conviennent.
Cordialement,
Gilbert
"Yves COUETTE" a écrit dans le message de news:Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans
ce cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille
Excel que j'utilise depuis plusieurs années et que je peux continuer à
utiliser), j'ai rencontré une difficulté à laquelle je n'avais pas pensé
en entreprenant cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à
disposer sur 6 colonnes ; pas de problème pour les 25 premiers
enregistrements, mais comment, du 26ème au 50ème passer à trois autres
colonnes me donnant sur l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3);
colonne 4 T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai
pensé faire un petit module VBA, j'en fait de temps en temps (par
plaisir, étant retraité, cela me permet de ne pas abandonner la
programmation que j'ai commencé à pratiquer, en différents langages,
depuis 1980 ; et peut-être aussi empêcher les neurones de rouiller trop
vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module
VBA ; cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être
totalement compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible
???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant
de nombreuses années dBase II, puis dBase III et enfin Paradox sous
lequel j'ai développé pas mal de modules programmés et en particulier des
états me permettant de faire exactement ce que je voulais au point de vue
de la mise en page, n'utilisant que rarement ou pas du tout les états
"préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par
ligne ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer
dans un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais
ce n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même
façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus
ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans ce
cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille Excel
que j'utilise depuis plusieurs années et que je peux continuer à utiliser),
j'ai rencontré une difficulté à laquelle je n'avais pas pensé en entreprenant
cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements, mais
comment, du 26ème au 50ème passer à trois autres colonnes me donnant sur
l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3); colonne 4
T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai pensé
faire un petit module VBA, j'en fait de temps en temps (par plaisir, étant
retraité, cela me permet de ne pas abandonner la programmation que j'ai
commencé à pratiquer, en différents langages, depuis 1980 ; et peut-être
aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module VBA ;
cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible ???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel j'ai
développé pas mal de modules programmés et en particulier des états me
permettant de faire exactement ce que je voulais au point de vue de la mise
en page, n'utilisant que rarement ou pas du tout les états "préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans ce
cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille Excel
que j'utilise depuis plusieurs années et que je peux continuer à utiliser),
j'ai rencontré une difficulté à laquelle je n'avais pas pensé en entreprenant
cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements, mais
comment, du 26ème au 50ème passer à trois autres colonnes me donnant sur
l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3); colonne 4
T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai pensé
faire un petit module VBA, j'en fait de temps en temps (par plaisir, étant
retraité, cela me permet de ne pas abandonner la programmation que j'ai
commencé à pratiquer, en différents langages, depuis 1980 ; et peut-être
aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module VBA ;
cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible ???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel j'ai
développé pas mal de modules programmés et en particulier des états me
permettant de faire exactement ce que je voulais au point de vue de la mise
en page, n'utilisant que rarement ou pas du tout les états "préfabriqués".
"Jac" <jsansp@amfra.net> a écrit dans le message de news:
uJ3da1f8JHA.3556@TK2MSFTNGP04.phx.gbl...
Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :
Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier texte
Print #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.
Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.
Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?
Merci d'éclairer ma lanterne.
Yves
Bonjour Jac,
merci de ta réponse. Elle semble me confirmer qu'il n'y a pas de manière
simple d'imprimer en VBA !
Depuis 2002 où je suis passé à Access, j'ai toujours fait mes requêtes et
états avec les options "Créer une nouvelle requête ou un nouvel état...".
Je ne me rappelle pas avoir eu de difficulté particulière à imprimer dans ce
cas ; je trouve Access bien pratique pour cela.
Dans le petit état que je fais actuellement (pour remplacer une feuille Excel
que j'utilise depuis plusieurs années et que je peux continuer à utiliser),
j'ai rencontré une difficulté à laquelle je n'avais pas pensé en entreprenant
cet état par la méthode habituelle.
En deux mots : la requête de cet état est constitué de 3 champs à disposer
sur 6 colonnes ; pas de problème pour les 25 premiers enregistrements, mais
comment, du 26ème au 50ème passer à trois autres colonnes me donnant sur
l'état :
ligne 1 : colonne 1 T(1,1); colonne 2 T(1,2); colonne 3 T(1,3); colonne 4
T(26,1); colonne 5 T(26,2); colonne 6 T(26,3)
ligne 2 : colonne 1 T(2,1); colonne 2 T(2,2); colonne 3 T(2,3); colonne 4
T(27,1); colonne 5 T(27,2); colonne 6 T(27,3).
...........
ligne 25 : colonne 1 T(25,1); colonne 2 T(25,2); colonne 3 T(25,3); colonne 4
T(50,1); colonne 5 T(50,2); colonne 6 T(50,3).
Ne trouvant pas immédiatement la solution avec un état standard, j'ai pensé
faire un petit module VBA, j'en fait de temps en temps (par plaisir, étant
retraité, cela me permet de ne pas abandonner la programmation que j'ai
commencé à pratiquer, en différents langages, depuis 1980 ; et peut-être
aussi empêcher les neurones de rouiller trop vite ?).
Dans mon module VBA :
- je commence par garnir une table à 3 entrées T(x,y,z)...
- puis mise au point avec des "debug.print" (pratique)
- pour finir la mise en page, j'ai voulu envoyer à l'imprimante...
- c'est la que j'ai constaté que la recherche dans mes bouquins et sur
Internet ne me donnait rien !
- je n'avais vu cela dans aucun langage utilisé jusqu'alors (Basic, C,
Paradox, éditeur muni dans langage,...)
- cela ne ma parait pas pensable qu'un langage quel qu'il soit ne sache
pas "parler" à l'imprimante ?
- voulant aller un peu plus loin, j'ai testé le " Print #FichierTexte,
Tab(5) ; Texte1 ; Tab(30) ; Texte2 "
- OK, j'obtiens bien un fichier texte, mais ce n'est pas ce que je
cherche.
Voilà donc pourquoi je souhaite parvenir à imprimer à travers un module VBA ;
cela pourrait, en outre, m'être utile dans une autre appli ?
Sans doute y a-t-il une solution par un état ? en modifiant la requête de
telle sorte qu'à partir du 26ème enregistrement le nom de l'alias soit
différent ?
Mais, à travers VBA ?
Excuse-moi d'avoir été un peu long, c'était pour essayer d'être totalement
compris.
Amitiés et merci encore.
Conclusion : alors, impression à travers VBA ? Possible ou pas possible ???
Yves
Pour info : je me suis mis à Access en 2002 après avoir utilisé pendant de
nombreuses années dBase II, puis dBase III et enfin Paradox sous lequel j'ai
développé pas mal de modules programmés et en particulier des états me
permettant de faire exactement ce que je voulais au point de vue de la mise
en page, n'utilisant que rarement ou pas du tout les états "préfabriqués".
"Jac" a écrit dans le message de news:Bonjour Yves,
si l'impression se fait depuis un état, pas besoin de vba, il suffit de
dimentionner verticalement le groupe qui contient ta ligne (détail ou
regroupement) pour qu'il ne puisse pas y en avoir deux sur la même page.
Donc après chaque ligne, tu auras un saut de page. Donc une page par ligne
ou une ligne par page, c'est comme tu préfères.
Donc ton vba, c'est juste pour lancer l'impression. Et ça, tu pourrais
aussi le faire par macro : impression directe de l'état à l'ouverture de
l'état.
Jac
Après mûre réflexion, Yves COUETTE a écrit :Environnement :
Windows XP
Access 2002
Imprimante Canon Laser Shot LBP-1120
Bonjour.
Je n'ai pas trouvé l'instruction permettant d'imprimer à partir d'un
module VBA. J'ai consulté 2 livres. Ils indiquent comment imprimer dans
un fichier textePrint #FichierTexte, Tab(5) ; Texte1 ; Tab(30) ; Texte2
[ Et aussi d'exporter vers Word ou Excel. ]
Cela écrit bien dans le fichier texte, que je peux imprimer après, mais ce
n'est pas ce que je cherche.Je souhaite une instruction (du même genre ?) envoyant de la même façon,
ligne à ligne, à l'imprimante.Si, par hasard cela n'existe pas, il doit bien y avoir un moyen plus ou
moins direct d'imprimer à partir du module VBA ?Merci d'éclairer ma lanterne.
Yves
Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants Mtt)
et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux la
placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même page
(détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme ! L'ennui
c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves
Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants Mtt)
et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux la
placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même page
(détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme ! L'ennui
c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves
Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants Mtt)
et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux la
placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même page
(détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme ! L'ennui
c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves
. la question des totaux est de savoir si tu veux en bas de chaque page,
les totaux de la page et/ou si c'est les totaux cumulés depuis la première
page et/ou si c'est le total général que tu obtiens déjà dans le pied
d'état et aussi s'il faut renvoyer en haut de la page suivante les reports
des pages précédentes comme ça se faisait dans des livres de compte version
papier à 15 ou 30 colonnes.
La suggestion pour la question ci-dessous :
tu n'affiches pas le pied d'état, mais tu crées des zones de texte sur ta
page (groupe ou pied de page) dans lesquelles tu renvoies le nom des zones
de texte du pied d'état. De cette facon, tu devrais pouvoir afficher les
récultats attendus. En cas de problème parce que le pied d'état se calcule
après les pieds de page, tu fais tes calculs dans l'entête d'état.
Quant à attaquer l'imprimante directement depuis le vba, je n'y crois pas.
Trop complexe et trop long à développer surtout sans enregistreur de vba
qui permet quand même de "noter" ce qui a été fait à l'écran. Mais rien ne
t'empêche d'exporter dans le format qui te convient (txt, xls, ...) tes
données pour les traiter avec un "petit programme".
Il ne me viendrait jamais à l'idée de vouloir créer un état en mode
création. Quand l'assistant a mis tout ce qu'il faut dans l'état il reste
encore tellement de travail avant d'imprimer que je ne vois vraiment pas
pourquoi je me priverais de l'assistant.
@ +
Yves COUETTE a exposé le 22/06/2009 :Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants
Mtt) et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux
la placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même
page (détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme !
L'ennui c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves
. la question des totaux est de savoir si tu veux en bas de chaque page,
les totaux de la page et/ou si c'est les totaux cumulés depuis la première
page et/ou si c'est le total général que tu obtiens déjà dans le pied
d'état et aussi s'il faut renvoyer en haut de la page suivante les reports
des pages précédentes comme ça se faisait dans des livres de compte version
papier à 15 ou 30 colonnes.
La suggestion pour la question ci-dessous :
tu n'affiches pas le pied d'état, mais tu crées des zones de texte sur ta
page (groupe ou pied de page) dans lesquelles tu renvoies le nom des zones
de texte du pied d'état. De cette facon, tu devrais pouvoir afficher les
récultats attendus. En cas de problème parce que le pied d'état se calcule
après les pieds de page, tu fais tes calculs dans l'entête d'état.
Quant à attaquer l'imprimante directement depuis le vba, je n'y crois pas.
Trop complexe et trop long à développer surtout sans enregistreur de vba
qui permet quand même de "noter" ce qui a été fait à l'écran. Mais rien ne
t'empêche d'exporter dans le format qui te convient (txt, xls, ...) tes
données pour les traiter avec un "petit programme".
Il ne me viendrait jamais à l'idée de vouloir créer un état en mode
création. Quand l'assistant a mis tout ce qu'il faut dans l'état il reste
encore tellement de travail avant d'imprimer que je ne vois vraiment pas
pourquoi je me priverais de l'assistant.
@ +
Yves COUETTE a exposé le 22/06/2009 :
Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants
Mtt) et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux
la placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même
page (détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme !
L'ennui c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves
. la question des totaux est de savoir si tu veux en bas de chaque page,
les totaux de la page et/ou si c'est les totaux cumulés depuis la première
page et/ou si c'est le total général que tu obtiens déjà dans le pied
d'état et aussi s'il faut renvoyer en haut de la page suivante les reports
des pages précédentes comme ça se faisait dans des livres de compte version
papier à 15 ou 30 colonnes.
La suggestion pour la question ci-dessous :
tu n'affiches pas le pied d'état, mais tu crées des zones de texte sur ta
page (groupe ou pied de page) dans lesquelles tu renvoies le nom des zones
de texte du pied d'état. De cette facon, tu devrais pouvoir afficher les
récultats attendus. En cas de problème parce que le pied d'état se calcule
après les pieds de page, tu fais tes calculs dans l'entête d'état.
Quant à attaquer l'imprimante directement depuis le vba, je n'y crois pas.
Trop complexe et trop long à développer surtout sans enregistreur de vba
qui permet quand même de "noter" ce qui a été fait à l'écran. Mais rien ne
t'empêche d'exporter dans le format qui te convient (txt, xls, ...) tes
données pour les traiter avec un "petit programme".
Il ne me viendrait jamais à l'idée de vouloir créer un état en mode
création. Quand l'assistant a mis tout ce qu'il faut dans l'état il reste
encore tellement de travail avant d'imprimer que je ne vois vraiment pas
pourquoi je me priverais de l'assistant.
@ +
Yves COUETTE a exposé le 22/06/2009 :Bonjour,
pour ce même état, je dois mettre dans le bas un total (des montants
Mtt) et un nombre (celui des chèques) :
= Somme(Mtt)
= Compte(Mtt)
si je mets cela dans un pied de page, j'obtiens "erreur" (mais... je peux
la placer où je veux :-)
si je mets cela dans un pied d'état, j'obtiens la bonne somme et le bon
nombre...
mais je n'ai pas encore trouvé comment les placer sur la même
page (détail)
il y a toujours un saut à la page suivante :-(
C'est un tout simple bordereau de remise de chèques que je fais
habituellement sous Excel. Une seule page suffit.
J'ai aussi fait un petit essai en créant un groupe, mais sans succès !
Une suggestion ?
(Une remarque : il est si facile d'écrire avec un petit programme !
L'ennui c'est qu'on ne peut pas l'imprimer !)
Amitiés
Yves