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

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

IHM Discussion :

Position debut d'impression d'une etiquette


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Position debut d'impression d'une etiquette
    Bonjour,

    J'ai mis en place une base access afin de fidéliser mes clients. Jusque là aucun problème.

    là ou ça se gâte, c'est que je souhaite imprimer des étiquettes (avec code barre) pour remettre à mes clients une carte de fidélité nominative.

    J'utilise généralement pour mes mailing des planches d'étiquettes (format A4)

    Bien entendu, je ne veux pas utiliser une planche à chaque fois que je dois établir une carte de fidélité !!!

    Comment puis-je faire lorsque je souhaite imprimer une seule étiquette sur un endroit de la planche A4 déterminé.
    Il faudrait en fait qu'en début d'impression, je puisse indiquer la position de départ. (démarrer à l'étiquette 5 par exemple ...). Visiblement, d'après mes essais, plus facile à dire qu'à faire.

    J'espère avoir été assez explicite.

    Par avance merci

    Marco

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    J'avais vu ce sujet et j'espérais beaucoup de réponses, car cela m'intéresse beaucoup, mais apparemment ce ne doit pas être simple.
    Dernière modification par Invité ; 09/05/2009 à 09h19.

  3. #3
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Un peu de code.

    Deux variables à déclarer dans la section "Déclaration" de l'état, la première procédure sur l'événement Sur ouverture de l'état, la deuxième sur l'événement Sur impression de la section "Détail".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Option Compare Database
    Option Explicit
     
    '--------------------------------------------------------------------------------------------
    ' Projet          : -
    ' Auteur          : Pierre (3stone) - http://www.3stone.be/access/
    ' Version / Date  : 1.0 / 01.01.2008
    ' Révision / Date : -
    ' Commentaires    : Permet de commencer l'impression d'étiquettes
    '                   à la position choisie
    ' Lien            : http://www.3stone.be/access/articles.php?lng=fr&pg=62
    '--------------------------------------------------------------------------------------------
     
    Public intEtiquettesAPasser As Integer
    Public intEtiquettesPassees As Integer
     
    Private Sub Report_Open(Cancel As Integer)
     
        Dim intNbEtiquettesVides As String
     
        intNbEtiquettesVides = InputBox("Nombre d'étiquettes vides ?")
     
        If IsNull(intNbEtiquettesVides) Then
     
            Cancel = True
     
        Else
     
            intEtiquettesAPasser = Val(intNbEtiquettesVides)
     
        End If
     
    End Sub
     
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
     
        If intEtiquettesPassees < intEtiquettesAPasser Then
     
            Me.NextRecord = False
     
            Me.PrintSection = False
     
            intEtiquettesPassees = intEtiquettesPassees + 1
     
        End If
     
    End Sub
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je viens d'essayer la solution de Domi2.
    C'est génial.
    A l'ouverture de l'Etat un paramètre demande en fait combien d'étiquettes manquent sur la feuille et l'impression démarre à la suivante.

    On peut l'adapter par une case à cocher pour demander si on veut commencer sur une feuille entière ou sur une feuille entamée et tout baigne.

    Domi2 You are the king

  5. #5
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Re,

    Ben roi peut-être, mais de la recherche alors...

    Bon dév !

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 9
    Points : 5
    Points
    5
    Par défaut remerciement
    Merci pour la réponse, j'essaie dès demain matin, mais vu l'enthousiasme de GAYOT, que du plaisir en perspective

    Bonne soirée

    Marco

  7. #7
    Invité
    Invité(e)
    Par défaut
    Effectivement
    J'ai déjà mis en oeuvre ce module et j'ai remplacé le Inbox par une zone à l'intérieur de mon formulaire de paramétrage avec comme valeur par défaut 0.

    C'est vrai que c'est assez bluffant.
    Dernière modification par Invité ; 11/05/2009 à 08h29.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    J'ai utilisé l'astuce de Domi2, que je remercie chaleureusement au passage , car j'avais la même problématique. Par contre, j'ai un souci : lors de l'aperçu de l'état, le positionnement se fait bien, par exemple, à la 3ème étiquette. Mais dès que je lance l'impression physique, Access refuse d'imprimer à la position voulue et utilise systématiquement la 1ère étiquette. J'ai testé en impression avec PDFCreator : Idem. L'imprimante est une Laser Canon.
    J'utilise Access 2000 avec Windows 2000.
    Est-ce un bug de cette version ou ai-je loupé quelque chose ?

    Merci et à bientôt

    Tibo33

  9. #9
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    lors de l'aperçu de l'état, le positionnement se fait bien, par exemple, à la 3ème étiquette. Mais dès que je lance l'impression physique, Access refuse d'imprimer à la position voulue et utilise systématiquement la 1ère étiquette.
    J'avais mis ça en place il y'a longtemps, mais ça me rappelle quelque chose...

    Si tu lances l'impression directement sans passer par l'aperçu, ça fonctionne ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Une autre solution qui est possible (je n'ai plus cela sous la main), c'est d'alimenter ton état par une table temporaire, dans laquelle tu ajoutes des enregistrements vides qui font office d'étiquettes vides, et ensuite tu ajoutes ceux qui sont à imprimer.

    Philippe

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Oui Domi2, l'impression directe sans passer par l'aperçu fonctionne. Tu me devances car j'allais ajouter cette précision.
    S'il n'y a pas de solution, j'ai toujours la possibilité de lancer l'aperçu puis de poser la question si c'est Ok et de lancer l'impression en direct. A moins que... tu ais la solution ?

    Merci

    tibo33

  12. #12
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Ok,

    Je n'ai pas l'appli sous la main, mais c'est bien ça... Je n'avais pas considéré la chose importante, car un "aperçu" d'une planche d'étiquettes ne me semblait pas indispensable...

    Pour la solution, je vais essayer de voir avec l'auteur...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonsoir à tous

    Effectivement mes tests s'étaient arrêtés à l'aperçu et je n'avais pas imaginé que cela ne marcherait pas à l'impression.
    Le problème avec l'impression directe c'est que cela n'ouvre pas la boite de dialogue de choix d'imprimante.
    Il va donc falloir trouver une combine. Je vais y réfléchir...
    Il y a l'option de Philippe, mais ça semble un peu plus lourd.

    Merci à tous.

  14. #14
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonsoir,

    Réponse "rapide" de l'auteur....

    Non, on ne peut pas passer par l'aperçu et puis imprimer. Soit on visionne, soit on imprime.

    Tu as deux solutions:
    Soit tu crées deux boutons, l'un pour l'aperçu et l'autre pour imprimer;
    Soit un bouton et tu pose la question, voir ou imprimer.
    Cela a le mérite de la clarté... Donc sauf à trouver une amélioration improbable du code, je pense qu'il faut jouer en "amont"...

    C'est-à-dire personnaliser les menus...

    @Philippe

    Cela me plaît plus que ta solution "table temporaire"... Mais pour la création de menus dynamiques en fonction de la situation, tu es "hors-jeux". Ton tutoriel devrait suffire...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Merci Domi2
    C'est bien ce que je craignais hier soir.
    IL va donc falloir que je passe par un formulaire de choix d'imprimante par défaut intermédiaire, si la Zone de texte 'Nb_Eti" est >0.
    Quand aux menus personnalisés avec 2007
    Dernière modification par Invité ; 13/05/2009 à 08h16.

  16. #16
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Peut-être pas besoin de formulaire...

    Il y'a un ensemble de fonctions dans la FAQ pour configurer la boîte de dialogue d'impression...

    Si cela peut te donner des idées...

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  17. #17
    Futur Membre du Club
    Inscrit en
    Février 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 20
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Je reviens sur ce vieux sujet qui n'est pas tout à fait résolu.
    Je m'en suis servi et je remercie l'auteur de l'astuce.

    J'ai trouvé une amélioration du code pour permettre le décalage des étiquettes même en passant par l'aperçu avant impression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Option Compare Database
    Option Explicit
     
    '--------------------------------------------------------------------------------------------
    ' Projet          : -
    ' Auteur          : Pierre (3stone) - http://www.3stone.be/access/
    ' Version / Date  : 1.0 / 01.01.2008
    ' Révision / Date : -
    ' Commentaires    : Permet de commencer l'impression d'étiquettes
    '                   à la position choisie
    ' Lien            : http://www.3stone.be/access/articles.php?lng=fr&pg=62
    '--------------------------------------------------------------------------------------------
     
    Public intEtiquettesAPasser As Integer
    Public intEtiquettesPassees As Integer
    Public intNbreEnregistrement As Integer
     
    Private Sub Report_Open(Cancel As Integer)
    
    intNbreEnregistrement = Me.OpenArgs
     
        Dim intNbEtiquettesVides As String
     
        intNbEtiquettesVides = InputBox("Nombre d'étiquettes vides ?")
     
        If IsNull(intNbEtiquettesVides) Then
     
            Cancel = True
     
        Else
     
            intEtiquettesAPasser = Val(intNbEtiquettesVides)
     
        End If
     
    End Sub
     
    Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
     
        If intEtiquettesPassees < intEtiquettesAPasser Then
     
            Me.NextRecord = False
     
            Me.PrintSection = False
     
            intEtiquettesPassees = intEtiquettesPassees + 1
     
        End If
    
       'code déplacé sous le If
        intEtiquettesPassees = intEtiquettesPassees + 1 
        
        If intEtiquettesPassees = NbreEnregistrement + intEtiquettesAPasser Then
            intEtiquettesPassees = 0
        End If
     
    End Sub

    Le problème venait du fait qu'avec l'aperçu avant impression, la variable "intEtiquettesPassees" restait à son maximum et ne se réinitialisait pas au moment d'imprimer réellement le document. En effet, quand on imprime le document après un aperçu, Access réexécute tout le code "Détail_Print" mais pas le code d'ouverture "Report_Open"

    Je connaissais le nombre d'étiquettes avant d'ouvrir l'état, je le fais donc passer en argument d'ouverture (intNbreEnregistrement = Me.OpenArgs) ce qui me permet de réinitialiser "intEtiquettesPassees" au bon moment.

    S'il existe plus propre, n'hésitez pas à changer, je suis toujours débutant...

  18. #18
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 352
    Points : 181
    Points
    181
    Par défaut
    Bonjour,

    J'ai essayé le code de mill3d mais j'ai une erreur 94, utilisation incorrecte de Null, sur la ligne 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Private Sub Report_Open(Cancel As Integer)
     
        intNbreEnregistrement = Me.OpenArgs
    Jean-Pierre

  19. #19
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Tu passes bien un argument en ouvrant ton état ?

    Peux-tu poster le code ?

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  20. #20
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Comme le dit Domi2 il faut connaitre ton argument.

    Tu as ce message d'erreur car OpenArgs renvoie la valeur "Null"
    Pour éviter ce blocage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Private Sub Report_Open(Cancel As Integer) 
        intNbreEnregistrement = Nz(Me.OpenArgs, 0)

Discussions similaires

  1. Réponses: 3
    Dernier message: 30/08/2010, 12h22
  2. Réponses: 0
    Dernier message: 18/03/2010, 14h32
  3. Bloquer la position d'un bouton sur une feuille à l'impression
    Par benpinta dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 26/10/2007, 16h59
  4. [VB6] position de l'impression d'une form sur une feuille
    Par cisnake dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 22/05/2006, 01h06
  5. Problème d'impression d'un pdf sous format d'une etiquette
    Par **jouly** dans le forum Périphériques
    Réponses: 2
    Dernier message: 04/04/2006, 13h18

Partager

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