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

Contenu d'Userform différent selon l'onglet

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 !

Sirberthoult

XLDnaute Occasionnel
Bonjour, le forum

j'ai besoin d'un peu d'aide pour m’éviter 12x le même Userform (1 pour chaque Onglet)...

voila dans mon fichier quand je click sur le Bouton Bleu "Balance" de l'onglet "Synthése", s'affiche L' Userform1 qui contient des infos prise dans l'Onglet "Balance"
Je souhaite que quand je click sur les autres boutons Bleu (Cancer, Taureau,...) s'affiche le même Userform mais avec les données propre à l'onglet du même nom...

je pourrais créer 12 Userform identiques avec 12 x le même code et changer juste les références aux Onglets, mais je suis sur qu'une solution plus "Légére" existe...

merci d'avance...
 

Pièces jointes

Re : Contenu d'Userform différent selon l'onglet

Bonjour,

pas tout testé ni tout regardé... mais peut être en remplacant ceci dans le code de l'usf :
Code:
  Set f = Sheets("Balance")
par cela :
Code:
    Set f = Sheets(ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Text)

enfin si j'ai bien compris...

bon après midi
@+
 
Re : Contenu d'Userform différent selon l'onglet

Bonjour Pierrot93,

Merci de ta réponse mais je ne crois pas que tu es vu que Balance revenez 4 fois encore 3 lignes plus bas ...

en plus je pense que l'userform1 doit être liée d'une façon ou d'une autre à tout les boutons bleus... mais je sais pas comment???

si je clique sur "Taureau" cela ouvre l'Userform1 avec les données de l'onglet Taureau...
si je clique sur "Gemeau" cela ouvre l'Userform1 avec les données de l'onglet Gemeau...
et ainsi de suite...
 
Re : Contenu d'Userform différent selon l'onglet

Re,

excuse moi je suis dur à la compréhension ...

quand je place ton code est que je fais executé j'ai:
erreur d’exécution , l'élément portant ce nom est introuvable...

Que dois je faire avec nBalance ??? Je peut pas mettre que "n" tout seul ... ça marchera pas non plus ...
et mes autre boutons j'y place : Userform1.Show sans rien y changer ???

je suis perdu ...

Mea Culpa !!!!!!!!!!!

quand je click sur mes boutons ça fonctionne comme je le voulais !!!!

j'ai seulement pas compris comment !!! en plus en laissant nBalance alors qu'on change d'onglet ?????
 
Dernière édition:
Re : Contenu d'Userform différent selon l'onglet

Re,

quand je place ton code est que je fais executé j'ai:
erreur d’exécution , l'élément portant ce nom est introuvable...

quelle ligne de code bloque ? le texte de la forme auto doit être exactement le même que celui de l'onglet.... pour tester ton code, mets des points d'arrêt (touche de fonction F9) dans l'éditeur vba et exécute le pas à pas (F8)...
 
Re : Contenu d'Userform différent selon l'onglet

Re, Pierrot 93

Ton code fonctionne !!! pas de problèmes c'est parce que je l’exécutais à la main donc il ne savait pas de quel onglet je voulais le résultat puisque je n'appuyais pas sur les boutons ...

par contre tu peut peut être me sauver encore une fois ... j'ai une macro qui rassemble et tri qui doit s'effectuer juste avant ton code pour mettre a jour les infos que vas afficher l'userforme.. il se trouve dans le module 1 "rassembler et trier" je pensais pouvoir l'ajouter seul mais je n'y arrive pas ...
 

Pièces jointes

Re : Contenu d'Userform différent selon l'onglet

Bonjour,

il faut passer la feuille en paramètre à la procédure....
dans l'usf :
Code:
Dim début, n, f As Worksheet
Private Sub UserForm_Initialize()
Set f = Sheets(ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Text)
rassembler_trier f
début = 2
  n = 5
  nBoutons = Application.CountA(f.[F:F]) - 1
  If nBoutons < n Then n = nBoutons
  Me.ScrollBar1.Min = 2
  Me.ScrollBar1.Max = nBoutons - n + 1
  affiche
End Sub

la procédure de tri modifiée :
Code:
Sub rassembler_trier(ws As Worksheet)
Dim fin_part_(1 To 2) As Integer
Dim boucle_(2 To 3) As Integer
With ws
    fin_part_1 = .Range("B65536").End(xlUp).Row
    fin_part_2 = .Range("D65536").End(xlUp).Row
    
    For boucle_2 = 3 To fin_part_1
        .Range("F" & boucle_2).Value = .Range("B" & boucle_2).Value
        .Range("G" & boucle_2).Value = .Range("B2").Value
        .Range("H" & boucle_2).Value = .Range("C" & boucle_2).Value
    Next boucle_2
    
    For boucle_3 = 3 To fin_part_2
        .Range("F" & boucle_3 + fin_part_1 - 1).Value = .Range("D" & boucle_3).Value
        .Range("G" & boucle_3 + fin_part_1 - 1).Value = .Range("D2").Value
        .Range("H" & boucle_3 + fin_part_1 - 1).Value = .Range("E" & boucle_3).Value
    Next boucle_3
    
        'Columns("F:H").Sort Key1:=Range("F2"), Order1:=xlDescending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
            
        'Columns("F:H").Select
         'Selection.Sort Key1:=Range("F2"), Order1:=xlDescending, Key2:=Range("G2"), _
             Order2:=xlAscending, Key3:=Range("H2"), Order3:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
       
        .Columns("F:H").Sort Key1:=.Range("F3"), Order1:=xlDescending, Key2:=Range("G3"), _
             Order2:=xlAscending, Key3:=Range("H3"), Order3:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
End With
End Sub

bonne journée
@+
 
Re : Contenu d'Userform différent selon l'onglet

Bonjour le forum bonjour pierrot93,

merci encore de ton aide, j'ai remplacer mes codes par les tiens et ...
malheuresement je rencontre un soucis... cela me donne une erreur d'execution1004 ...et bloque au niveau de Userform1.show dans boutons()...

en gros ca rasemble bien les bonnes données au bonne endroit ... mais ca ne les tri pas et l'userform ne s'affiche pas
 
Re : Contenu d'Userform différent selon l'onglet

Re,

manquait des points sur cette ligne de code :
Code:
        .Columns("F:H").Sort Key1:=.Range("F3"), Order1:=xlDescending, Key2:=.Range("G3"), _
             Order2:=xlAscending, Key3:=.Range("H3"), Order3:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
 
Re : Contenu d'Userform différent selon l'onglet

Re,

Parfait !!!

Merci encore, cela fonctionne parfaitement !!!

je manque de mots pour exprimer mon contentement !!!

y a plus qu'as parfaire mon projet... peut être à un prochain coup de main ...
 
- 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

J
Réponses
18
Affichages
4 K
Y
Réponses
0
Affichages
19 K
yuuki
Y
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…