Numéro de page d'une valeur

  • Initiateur de la discussion Initiateur de la discussion MikaTI
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MikaTI

XLDnaute Junior
Bonjour à tous,

Je recherche une solution à un petit problème que je rencontre sur la conception d'un classeur excel. (qui est je pense, un usine à gaz)

Sans entrer dans les détails de la conception de ce fichier, en finalité des macros compilent sur la dernière page nommée "Feuil1" toutes les données qui sont sous forme de tableau dans les autres feuilles de mon classeur.

L'onglet "feuil1" est donc composé de plusieurs pages, comportant plusieurs tableaux... Jusque là rien de compliqué.
En fait dans les premières page de cet onglet, j'ai un premier tableau qui fait office de base de données avec donc plusieurs colonnes. Dans ce fameux tableau, la 1ère colonne indique le type "d'objet" (dont la valeur est soit A ou B) et la quatrième colonne indique le numéro interne (tout le temps différents)
La dernière colonne de ce tableau est le numéro de page. C'est cela que je voudrai trouver suivant les explications ci dessous :

- Après ce tableau de base de données, je retrouve les données de chaque ligne dans des tableaux dans les pages suivantes. Pour les objets type A, j'ai une forme de tableau, pour les données type B j'ai une autre forme de tableau.
Je voudrai pouvoir indiquer dans la dernière colonne du tableau de base de donnée, donc page, dans quelle numéro de page, se trouve le numéro de série indiqué dans la 4eme colonne du tableau base de donnée...

Oula, j'espère que mes explications sont claires...
Je doute de la faisabilité de la chose, car j'ai essayé quelques divers code ou formule mais en vain.

Disponible pour plus d'explications bien entendu ^^

Merci bien 🙂 🙂
 
Re : Numéro de page d'une valeur

Bonjour

Cela serait bien que tu mettes en pièce jointe cette "Feuil1", ou au moins une partie de celle-ci.

@ plus

Bonjour

Merci pour votre retour,

Voici un classeur avec la feuil1 🙂

Merci bien
 

Pièces jointes

Re : Numéro de page d'une valeur

Bonjour

Deux remarques :
1) Vu que tu as fusionné des cellules, on ne sait pas trop ce que tu appelles 1ère colonne, 4ème colonne... Cela correspond t-il à celles de ton tableau, ou à celles de la feuille ?
2) Où sont les pages dont tu nous parle ? Quand je disais "une partie", il fallait une partie assez grande pour que nous comprenions tout, pas juste le premier tableau de Feuil1.

@ plus
 
Re : Numéro de page d'une valeur

Bonjour

Deux remarques :
1) Vu que tu as fusionné des cellules, on ne sait pas trop ce que tu appelles 1ère colonne, 4ème colonne... Cela correspond t-il à celles de ton tableau, ou à celles de la feuille ?
2) Où sont les pages dont tu nous parle ? Quand je disais "une partie", il fallait une partie assez grande pour que nous comprenions tout, pas juste le premier tableau de Feuil1.

@ plus

Pour réponse

1) Je parle en effet des colonnes de mon tableau et non de la feuille.

2) Tout y est... voir onglet "explications" de mon fichier...
Ici ma base de donnée ne comporte que 4 lignes donc 4 tableaux dispersés dans les pages suivantes...
 
Re : Numéro de page d'une valeur

Bonjour

Effectivement, je n'étais pas "descendu" assez bas sur la feuille.

1) Qu'appelle-tu n° de page, le n° dans les plages vertes ?
3) Toutes tes pages sont-elles en dessous, ou il y en a t'il aussi à droite de la colonne AA ?

@ plus
 
Re : Numéro de page d'une valeur

Bonjour

Effectivement, je n'étais pas "descendu" assez bas sur la feuille.

1) Qu'appelle-tu n° de page, le n° dans les plages vertes ?
3) Toutes tes pages sont-elles en dessous, ou il y en a t'il aussi à droite de la colonne AA ?

@ plus

Pas de soucis 🙂

Pour réponse

1) Non aucun rapport avec les plages vertes... je parle vraiment du numéro de page.
Exemple : doit apparait dans la ligne 1 du tableau de base de donnée à la colonne page = 3 (car les données sont retranscrites à la page 3)
Pour la ligne 2 / page = 3 (car aussi en page 3)
Pour la ligne 3 / page = 4 (car données retranscrites en page 4)
Pour la ligne 4 / page = 5 (car données retranscrites en page 5)
(tu peux voir en faisant en aperçu avant impression que les numéros de pages sont inscrites en pied)

2) Non il n'y aura jamais rien après la colonne Z, tout sera en dessous. Je rappel que le tableau de base de données peut être amené à être sur plusieurs pages.

Merci 🙂
 
Re : Numéro de page d'une valeur

Bonjour.

Une alternative : un lien vers la page concernée :

Voir pj

Bonjour

Merci pour votre alternative... Mais en fait le fichier sera imprimé, et le numéro de page est nécessaire et non un lien...
En effet, lorsque le tableau de base de donnée fera 100 lignes par exemple, ça aidera mieux de voir à quel numéro de page se reporter pour voir le détails de la ligne ^^

Merci quand même 🙂
 
Re : Numéro de page d'une valeur

Re,

Cette formule en Y44, à recopier vers le bas, à défaut de n° de page, vous renverra le n° de ligne :
=SI(STXT($A44;1;2)="Ac";"Ligne "&(EQUIV($L44;$D$1:$D$400;0));"Ligne "&(EQUIV($L44;$I$1:$I$400;0)))
Si vous connaissez le nb de lignes par page, vous pouvez faire le calcul.

Une solution à creuser serait le paramètre 27 de la fonction Excel4 LireCellule()
 
Re : Numéro de page d'une valeur

Bonjour

Cf. en pièce jointe.

Dans Y44
Code:
INDIRECT("A"&SOMMEPROD(((A$62:A$5000&D$62:D$5000="N° interne :"&L44)+(A$62:A$5000&I$62:I$5000="N° interne :"&L44))*(LIGNE(A$62:A$5000)))))

renvoie A62, car sur la ligne 62 se trouve le N° interne donné dans L44. Cette formule ne fonctionne correctement que si le N° d'identité se trouve soit dans la colonne D, soit dans la colonne I, et que l'ensemble des tableaux fini avant la ligne 5001.

La fonction personnalisée NumeroPage, proposée par Laurent Longre et trouvée sur le net, détaillé dans un module, renvoie le n° de la page contenant A62.


Cela fonctionne, mais c'est très lent sur mon ordinateur (une dizaine de secondes juste pour 4 valeurs !!!!). Je regarde si je ne peux pas trouver une astuce pour que cela tourne plus vite.

@ plus
 

Pièces jointes

Dernière édition:
Re : Numéro de page d'une valeur

Bonjour

Cf. en pièce jointe.

Dans Y44
Code:
INDIRECT("A"&SOMMEPROD(((A$62:A$5000&D$62:D$5000="N° interne :"&L44)+(A$62:A$5000&I$62:I$5000="N° interne :"&L44))*(LIGNE(A$62:A$5000)))))

renvoie A62, car sur la ligne 62 se trouve le N° interne donné dans L44. Cette formule ne fonctionne correctement que si le N° d'identité se trouve soit dans la colonne D, soit dans la colonne I, et que l'ensemble des tableaux fini avant la ligne 5001.

La fonction personnalisée NumeroPage, proposée par Laurent Longre et trouvée sur le net, détaillé dans un module, renvoie le n° de la page contenant A62.


Cela fonctionne, mais c'est très lent sur mon ordinateur (une dizaine de secondes juste pour 4 valeurs !!!!). Je regarde si je ne peux pas trouver une astuce pour que cela tourne plus vite.

@ plus

Merci CISCO pour ta réponse, je vais regarder cela ce weekend car là je n'ai pas du tout le temps ^^
J'ai juste téléchargé le fichier que tu as joints, mais dans les cellules ou tu as mis la formule j'ai " #VALEUR!"

je me pencherai dessus ce week end

Merci, je te tiens au courant 🙂
 
Re : Numéro de page d'une valeur

Bonjour

Chez moi, cela fonctionne, mais c'est vraiment long, et comme je n'y connais pas grand chose en VBA.

Voilà le code de la macro
Function NumeroPage(Cellule As Range) As Integer
'L Longre, mpfe

Dim VPC As Integer, HPC As Integer
Dim VPB As VPageBreak, HPB As HPageBreak
Dim Wksht As Worksheet
Dim Col As Integer, Ligne As Long

Application.Volatile

Set Wksht = Cellule.Worksheet
Ligne = Cellule.Row
Col = Cellule.Column
If Wksht.PageSetup.Order = xlDownThenOver Then
HPC = Wksht.HPageBreaks.Count + 1
VPC = 1
Else
VPC = Wksht.VPageBreaks.Count + 1
HPC = 1
End If
NumeroPage = 1
For Each VPB In Wksht.VPageBreaks
If VPB.Location.Column > Col Then Exit For
NumeroPage = NumeroPage + HPC
Next VPB
For Each HPB In Wksht.HPageBreaks
If HPB.Location.Row > Ligne Then Exit For
NumeroPage = NumeroPage + VPC
Next HPB

End Function


Si je comprend bien, la macro compte le nombre de fin de page.

J'ai cherché sur le net, mais c'est à chaque fois cette macro, de Laurent Longre, qui est proposée. Et comme le site de L. Longre, et celui de Misange, Excelabo, qui avait pris le relais, ont été piratés, je ne peux pas fouiller à "l'origine", pour voir s'il y a mieux maintenant. Si un de nos chers VBAistes pouvait se pencher sur le pb... Merci d'avance.

@ plus
 
Dernière édition:
Re : Numéro de page d'une valeur

Bonjour

Je viens de tester sur un autre ordi, plus récent. Ca tourne beaucoup plus vite.

@ plus

Bonjour Cisco,

Je viens de finir de tester tout ça, ça l'air d'être ok, et il n'y pas l'air d'avoir trop de soucis de lenteur...

Maintenant, est ce que je peux grâce à un module, insérer cette fameuse formule automatiquement dans les cellules? En prenant en compte évidemment le changement de ligne à chaque fois....

Je me permets de remettre le fichier à jour, car je l'ai un peu modifié (nombre de colonne surtout)
J'explique mon besoin dedans...

Merci bien
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
0
Affichages
235
Réponses
4
Affichages
81
Réponses
7
Affichages
180
Retour