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 :

Numerotation des pages par groupe [AC-2003]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut Numerotation des pages par groupe
    Bonjour le forum,

    Depuis ce matin je galere pour adapter cette macro afin d'avoir la numérotation des pages par groupe dans le pied de page.
    J'ai récupéré cette macro sur le forum, que j'ai placé dans un module, mais je n'arrive pas a avoir le résultat escompté.
    Qui pourrait m'indiquer mes erreurs et les corrections a apporter.

    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
    Option Compare Database
    Option Explicit
     
    Dim GrpArrayPage(), GrpArrayPages()
    Dim GrpNameCurrent As Variant, GrpNamePrevious As Variant
    Dim GrpPage As Integer, GrpPages As Integer
     
    Private Sub PageFooter_Format(Cancel As Integer, FormatCount As Integer)
    Dim i As Integer
      If Me.Pages = 0 Then    
        ReDim Preserve GrpArrayPage(Me.Page + 1)
        ReDim Preserve GrpArrayPages(Me.Page + 1)    
        GrpNameCurrent = EMETTEUR
        If GrpNameCurrent = GrpNamePrevious Then
            GrpArrayPage(Me.Page) = GrpArrayPage(Me.Page - 1) + 1
            GrpPages = GrpArrayPage(Me.Page)
                For i = Me.Page - ((GrpPages) - 1) To Me.Page
                    GrpArrayPages(i) = GrpPages            
                Next i    
        Else
            GrpPage = 1        
            GrpArrayPage(Me.Page) = GrpPage
            GrpArrayPages(Me.Page) = GrpPage    
        End If
      Else
        Texte75 = "Group Page " & GrpArrayPage(Me.Page) & " of " & GrpArrayPages(Me.Page)
      End If
      GrpNamePrevious = GrpNameCurrent
    End Sub
    Merci pour l'aide que vous pouvez m'apporter

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,
    Si j'ai bien compris la question : à mon avis, beaucoup plus simple :

    Dans l'événement "au formatage" du groupe, cette instruction :
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Bonjour ClaudeLELOUP, le forum,

    Je te remercie pour ta proposition, mais je me suis mal exprimé dans ma question. Je vais essayer de mieux faire.

    J'ai un etat qui a pour origine, une requete qui comporte environ 200 de lignes.
    Dans l'état le regroupement se fait sur le champ EMETTEUR.
    Lors de l'impression, je souhaiterai avoir la numerotation des pages dans le pied de page, par EMETTEUR. C'est à dire que pour l'emetteur A si il y a 1 page : 1 / 1, puis pour l'emetteur B si il y a 3 pages, sur la page 1 : 1/3 puis 2/3 sur la page 2 et 3/3 sur la page 3.
    Pour l'emetteur C qui a 2 pages, page 1 : 1/2 et 2/2 pour la page 2 et ainsi de suite ........
    Avec mes remerciements pour l'aide que vous pourrez m'apporter pour résoudre cette difficulté.
    Bonne journée à toutes et tous.
    Cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,
    la solution que je te propose vaut pour [page], ce que tu voudrais c'est agir aussi sur [Pages].
    J'ignore si c'est possible. A priori, non.
    Dans une telle situation, l'essaierais
    - de paramétrer la requête actuelle à un seul EMETTEUR
    - d’écrire une boucle pour exécuter autant de fois l’état qu’il y a d’émetteurs différents.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Merci ClaudeLELOUP,

    Si cette solution est plus simple, j'opterais pour celle ci, c'est à dire uniquement numéroter les pages par rapport à l'émetteur:

    Ce qui donnerait la numerotation des pages dans le pied de page, par EMETTEUR. C'est à dire que pour l'emetteur A si il y a 1 page : Page = 1, puis pour l'emetteur B si il y a 3 pages, sur la page 1 =Page 1, Page = 2 et page = 3.
    Pour l'emetteur C qui a 2 pages, page 1, page 2 et ainsi de suite ........

    Merci pour l'aide

  6. #6
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    En adaptant la macro trouvé, tout fonctionne à la perfection.

    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 
     
    Dim DB As Database 
    Dim GrpPages As Recordset 
     
    Function GroupTotalPages() 
       'Trouvez le nom de groupe. 
       GrpPages.Seek "=", Me![secteurs] 
       If Not GrpPages.NoMatch Then 
          GroupTotalPages = GrpPages![PageNuméro] 
       End If 
    End Function 
     
    Private Sub EntêteGroupe0_Format(Cancel As Integer, FormatCount As Integer) 
    ' Initialise le numéro de page à 1 lorsqu'un nouveau groupe débute 
        Page = 1 
    End Sub 
     
    Private Sub Report_Open(Cancel As Integer) 
    Set DB = DBEngine.Workspaces(0).Databases(0) 
       DoCmd.SetWarnings False 
       DoCmd.RunSQL "Delete * From [tbl_GroupePage];" 
       DoCmd.SetWarnings True 
       Set GrpPages = DB.OpenRecordset("tbl_GroupePage", DB_OPEN_TABLE) 
       GrpPages.Index = "PrimaryKey" 
    End Sub 
     
    Private Sub ZonePiedPage_Format(Cancel As Integer, FormatCount As Integer) 
    'Trouve le groupe au fur et à mesure. 
       GrpPages.Seek "=", Me![secteurs] 
     
       If Not GrpPages.NoMatch Then 
          'Le groupe est déjà comptabilisé. 
          If GrpPages![PageNuméro] < Me.Page Then 
             GrpPages.Edit 
             GrpPages![PageNuméro] = Me.Page 
             GrpPages.Update 
          End If 
       Else 
          'C'est une nouvelle page du groupe, Par conséquent on l'ajoute. 
          GrpPages.AddNew 
          GrpPages![secteurs] = Me![secteurs] 
          GrpPages![PageNuméro] = Me.Page 
          GrpPages.Update 
       End If 
    End Sub
    Bon WE à toutes et tous.
    Cordialement

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Merci Bernard67 d'avoir communiqué ce code.
    Si le sujet t'intéresse encore, tu peux voir ici
    http://www.developpez.net/forums/d99...orme-page-x-y/

    Bien à toi
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #8
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Bonjour ClaudeLELOUP, le forum,

    Effectivement ta proposition est nettement plus rapide et sans céation de table ou requete supplémentaire.

    Bravo et merci.
    Bonne soirée.
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD-2007] Numerotation des pages sur colonnes
    Par elgringo1223 dans le forum Word
    Réponses: 20
    Dernier message: 26/11/2018, 19h06
  2. Réponses: 10
    Dernier message: 07/07/2008, 17h50
  3. Gestion des pages par rapport aux menus
    Par darontankian dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 21h59
  4. N° de page par groupe dans etat
    Par electrosat03 dans le forum IHM
    Réponses: 2
    Dernier message: 18/06/2007, 19h42
  5. Nombre de pages par groupe dans un état
    Par loutsky dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 14h04

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