Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

modification code J.Boisgontier

  • Initiateur de la discussion Initiateur de la discussion zesuila
  • 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 !

zesuila

XLDnaute Occasionnel
Bonjour à tous

Je cherche à récupérer les infos de plusieurs onglets dans un onglmet récap. J'aitrouvé mon bonheur (comme souvent !) chez Jacques Boisgontier. (fonction nom onglet)

Mais j'ai un petit soucis avec la formule

j'ai mis donc en A1 la formule suivante (et fait une copie dans les cellules dessous)
=SI(LIGNE()<=nbonglets()*2-1;nomonglet(ENT(LIGNE()/2)+1);"")

J'ai mis en b1 la formule suivante 🙁et fait une copie dans les cellules dessous)
=SI(ESTERREUR(INDIRECT("'"&$A1&"'!a7"));"";INDIRECT("'"&$A1&"'!a7"))

ce qui me répertorie les nom des onglets en A1 et va me chercher l'info voulue en B1 (cellule A7 de chaque onglet)

Le soucis c'est que chaque ligne est doublée
je me retrouve par exemple avec le nom de l'onglet "papa" en A1 mais aussi en A2 avec les mêmes infos (donc doublons)

Dois je changer quelque chose dans la formule dans A1 ou dans B1

Et si une âme charitable pouvait m'expliquer la formule en A1 (Jacques ?) ce serait vraiment bien.

je vous joins un fichier exemple

Merci
 

Pièces jointes

Re : modification code J.Boisgontier

Bonjour




Essaie en modifiant ainsi

Code:
Function nbOnglets()[COLOR="Red"] As Long[/COLOR]
  Application.Volatile
  nbOnglets = Sheets.Count
End Function

et en A2 et A3 : =nomonglet(LIGNE())

Cela semble OK non ?
 
Dernière édition:
Re : modification code J.Boisgontier

Hello Forum, Zesuila, Vbacrumble,

Ou, remplaces ta formule en A1 par celle-là.
Code:
=SI(LIGNE()<=nbonglets()*1;nomonglet(ENT(LIGNE()/1));"")
Cdt, Hulk.
 
Re : modification code J.Boisgontier

Re,

Juste remarque 😀

Comme ça alors...
Code:
=SI(LIGNE()<=nbonglets();nomonglet(ENT(LIGNE()));"")
Et Zesuila, tu peux aussi mettre dans le code de la feuille "recap"...
Code:
Private Sub Worksheet_Activate()
    Calculate
End Sub
ou suivant l'envie...
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Calculate
End Sub
Pour que ça soit dynamique.

Merci Vbacrumble !

Cdt, Hulk.
 
Dernière édition:
Re : modification code J.Boisgontier

alors là super !
les deux fonctionnent (je n'en doutais point)
mais j'ai fais un "mix" des 2 codes proposés :
j'ai donc pris de vbacrumble ça :
Function nbOnglets() As Long
Application.Volatile
nbOnglets = Sheets.Count

et j'ai pris de Hulk ça :
=SI(LIGNE()<=nbonglets();nomonglet(ENT(LIGNE()));"")

car =nomonglet(LIGNE()) de vbacrumble me met des #valeurs après le dernier onglet listé.
c'est le côté "esthétique" qui a joué !!!

Et pour l'explication c'est possible?
en tout cas merci.
End Function
 
Re : modification code J.Boisgontier

j'aurais une autre petite question par rapport à ce code :
là cela me liste tous les onglets.
Mais si par exemple je ne veux pas que l'onglet "truc" et l'onglet "machin" apparaissent dans la liste ya t il quelquechose à rajouter au code ?

encore merci
 
- 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
4
Affichages
951
  • Question Question
Microsoft 365 Comparer 2 onglets
Réponses
8
Affichages
673
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
616
E
Réponses
5
Affichages
1 K
eric1989
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…