XL 2013 Afficher tableau sur userform

Appo1985

XLDnaute Occasionnel
Bonjour et excellente dimanche à tous.
Je voudrais de l’aide pour pouvoir afficher les données de mon tableau qui se trouve sur la feuille « TAB » au niveau du Userform selon le choix de Combobox1.
L’ordre des contrôles étant : Combobox1, Textbox1, Textbox2, Label1, Textbox3, Textbox4, Label2 puis de Label30 à Label41.
ci-joint le fichier.
Merci par avance.
 

Pièces jointes

  • AFFICHER DANS USERFORM.xlsm
    18.8 KB · Affichages: 8

Appo1985

XLDnaute Occasionnel
Bonsoir. Grandement merci .



Je n'avais pas du tout fait attention aux accents

Effectivement pour les Label 30 a 41 ça marche comme j'ai souhaité mais j'ai du mal a ajouter pour les premiers contrôles qui eux n'ont pas d'ordre logique selon leur noms.
j'ai coller les lignes de code que j'avais ajouté au niveau du Cbo_Mois_Change mais ça ne marche toujours pas.
 

Appo1985

XLDnaute Occasionnel
Bonsoir le Fil
phil69970 y'a un petit problème !
tu charges le Combobox des mois avec l'array puis tu y ajoutes les Mois de la Colonne A du Tableau(ce qui me semble plus correcte)
VB:
Private Sub UserForm_Initialize()
'Jai isolé la Ligne ci dessous '
'Me.Cbo_Mois.List = Array("JANVIER", "FÉVRIER", "MARS", "AVRIL", "MAI", "JUIN", "JUILLET", "AOÛT", "SEPTEMBRE", "OCTOBRE", "NOVEMBRE", "DÉCEMBRE")
Set f = Sheets("TAB")
For Each c In f.Range("A12:A" & f.[A65000].End(xlUp).Row)
    Me.Cbo_Mois.AddItem c
Next c
''Remplir les labels
For i = 30 To 41
    Me.Controls("Label" & i) = Worksheets("Tab").Cells(12, i - 21)
Next i
Peut-être n'ai-je pas compris Lol
Bonne fin de Journée
Jean marie
Bonsoir.
En effet je vois que je veux faire deux choses à la fois:
Permettre uniquement la saisie de mois et afficher les mois déjà saisis dans le combobox.
Il va falloir que je choisisse.
 

Phil69970

XLDnaute Barbatruc
Re

@Appo1985

Voici une aide au nommage

Et ne pas croire que c'est pour faire joli
Si tes labels sont mieux nommés cela pourrait te servir plus facilement pour le code
Idem pour les textbox et combo etc.....

Exemple : Lbl_Jours1 ,Lbl_Jours2, Lbl_Jours3 .......

Label35 ne veut pas dire grand chose alors que par exemple Lbl_Jours12 je vois tout de suite que c'est le label qui correspond au 12 eme jour !! C'est tout de suite plus parlant non !!!

Et si tu les nommes correctement tu peux facilement faire une boucle dessus pour leur donner une étiquette pour le label ou une valeur pour les textbox très facilement en 2 ou 3 ligne de code.

Gain de temps pour l'écriture et la maintenance du code ;)
 

Appo1985

XLDnaute Occasionnel
Re

@Appo1985

Voici une aide au nommage

Et ne pas croire que c'est pour faire joli


Label35 ne veut pas dire grand chose alors que par exemple Lbl_Jours12 je vois tout de suite que c'est le label qui correspond au 12 eme jour !! C'est tout de suite plus parlant non !!!

Et si tu les nommes correctement tu peux facilement faire une boucle dessus pour leur donner une étiquette pour le label ou une valeur pour les textbox très facilement en 2 ou 3 ligne de code.

Gain de temps pour l'écriture et la maintenance du code ;)
Merci. Je vais bien lire et essayer d'appliquer
 

Appo1985

XLDnaute Occasionnel
Bonjour à tous. Bonjour @ChTi160 .je suis encore là. J'ai trouvé des difficultés au niveau du code .

- d'abord le code marche seulement si mon tableau comporte deux lignes. Alors que c'est un tableau qui doit comporter une dizaine ou une vingtaine de ligne voir plus . Ce que j'ai donné dans le tableau n'est qu'un exemple pour pouvoir tester.

- ensuite les données du tableau s'affiche sur le userform déjà quand on affiche l'affiche alors que je voudrais seulement afficher quand je saisie le mois où je choisis le mois dans le combobox.

En fait c'est un fichier qui permet à l'utilisateur de remplir le tableau mensuellement via un bouton "Enregistrer" que j'ai pu coder par tâtonnement. Donc il peut renseigner le mois voulu. il n'y pas d'ordre a respecter mais au niveau du combobox il doit renseigner le mois.
ci joint une photo du userform d'origine
et du tableau.

Merci de m'aider à faire les deux corrections
 

ChTi160

XLDnaute Barbatruc
Bonjour Appo1985
Sans fichier pas évident de Comprendre :
- d'abord le code marche seulement si mon tableau comporte deux lignes. Alors que c'est un tableau qui doit comporter une dizaine ou une vingtaine de ligne voir plus . Ce que j'ai donné dans le tableau n'est qu'un exemple pour pouvoir tester.
Travailler sur une Image je ne sais pas faire ! Désolé .....
Bonne Journée
Jean marie
 

ChTi160

XLDnaute Barbatruc
Pour essayer (en aveugle) de répondre à la demande de ne plus avoir l'affichage du Premier Mois à l'ouverture.
j'ai ajouté une Ligne Vide au Combobox
Voir le Nouveau code.
VB:
Private Sub UserForm_Initialize()

Set f = Sheets("TAB") 'avec la feuille "TAB"
Me.Cbo_Mois.ColumnCount = 2 'on définit le Nombre de Colonnes du Combobox
Me.Cbo_Mois.ColumnWidths = "1;0" 'on définit la largeur des Colonnes du Combobox ici seule les données de la première seront Visibles
Me.Cbo_Mois.AddItem Empty 'On ajoute une ligne Vide au ComboBox
With f
  DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row 'on détermine la dernière ligne Non vide de la colonne 1 en partant du bas
  DerCol = .Cells(11, 200).End(xlToLeft).Column 'on détermine la dernière colonne Non vide la Ligne 11
TabBDD = .Range(.Cells(12, 1), .Cells(DerLgn, DerCol)).Value 'on récupére les données de la plage ainsi définie
End With
For Lgn = 1 To UBound(TabBDD) 'pour chaque ligne du Tableau
      Me.Cbo_Mois.AddItem TabBDD(Lgn, 1) 'On récupére la valeur de la Colonne 1 sur la Ligne Lgn
Next Lgn
      Me.Cbo_Mois.ListIndex = 0 'ici on affiche la première valeur du Combobox ici ligne Vide
End Sub
le Userform présent sur l'image , n'a rien à voir avec le Fichier initial !
Bonne Journée
Jean marie
 

Appo1985

XLDnaute Occasionnel
Pour essayer (en aveugle) de répondre à la demande de ne plus avoir l'affichage du Premier Mois à l'ouverture.
j'ai ajouté une Ligne Vide au Combobox
Voir le Nouveau code.
VB:
Private Sub UserForm_Initialize()

Set f = Sheets("TAB") 'avec la feuille "TAB"
Me.Cbo_Mois.ColumnCount = 2 'on définit le Nombre de Colonnes du Combobox
Me.Cbo_Mois.ColumnWidths = "1;0" 'on définit la largeur des Colonnes du Combobox ici seule les données de la première seront Visibles
Me.Cbo_Mois.AddItem Empty 'On ajoute une ligne Vide au ComboBox
With f
  DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row 'on détermine la dernière ligne Non vide de la colonne 1 en partant du bas
  DerCol = .Cells(11, 200).End(xlToLeft).Column 'on détermine la dernière colonne Non vide la Ligne 11
TabBDD = .Range(.Cells(12, 1), .Cells(DerLgn, DerCol)).Value 'on récupére les données de la plage ainsi définie
End With
For Lgn = 1 To UBound(TabBDD) 'pour chaque ligne du Tableau
      Me.Cbo_Mois.AddItem TabBDD(Lgn, 1) 'On récupére la valeur de la Colonne 1 sur la Ligne Lgn
Next Lgn
      Me.Cbo_Mois.ListIndex = 0 'ici on affiche la première valeur du Combobox ici ligne Vide
End Sub
le Userform présent sur l'image , n'a rien à voir avec le Fichier initial !
Bonne Journée
Jean marie
Bonjour. Merci d'avoir pris votre temps pour me répondre.
 

Discussions similaires

Réponses
12
Affichages
494

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin