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

userform adaptable à x données

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

fredl

XLDnaute Impliqué
Bonjour à tous,
dans le fichier joint, je souhaite charger un userform à partir de données se situant dans un tableau.
Le nb de ligne dans ce tableau pouvant varier de 1 à 6.
L'exemple joint gère une ligne.
Comment faire pour gérer /charger automatiquement n lignes?
la variable n etant la seule donnée variable dans le nom des OptionButtons et labels du userform :

ex : n=1 : nom des deux OptionButton : "OB1a" "OB1b" noms des 2 labels : Llabo1 et Lbureau1
n=2 : nom des deux Listbox : "LB2a" "LB2b" noms des 2 labels : Llabo2 et Lbureau2
etc...

Je souhaiterai donc charger le userform en effectuant une boucle (n étant connu = nb lignes tableau)
for n= 1 to nbLigneTableau
'exemple ici du chargement de la Listbox OB1a
OB & n & a.caption=ActiveCell.Offset(0, 1).Range("a1").Value & " " & ActiveCell.Offset(0,2).Range("a1").Value ' ''OB & n & a.caption'' ne marche pas
next



Merci d'avance pour votre aide.

Cordialement.
Frédéric

nb : peut etre que je ne m'y prend pas de la bonne manière. je suis donc preneur de toute autre solution. L'objectif étant d'adapter le userform au nombre de lignes présentes dans le tableau.
 

Pièces jointes

Re : userform adaptable à x données

bonjour,
la sub UserForm_Initialize() modifiée:

For n = 1 To Selection.Count '(nb de lignes du tableau renseignées)

'*** Affichage des frames ***
Controls("F" & n).Visible = True

'recup des nom-prenoms dans le tableau (comment remplacer le nb 1 par n dans les noms de 'optionButton'(OB1a par ex) et 'Labels'
Controls("OB" & n & "a").Caption = Cells(57 + n - 1, 14).Value & " " & Cells(57 + n - 1, 15).Value
Controls("OB" & n & "b").Caption = Cells(57 + n - 1, 16).Value & " " & Cells(57 + n - 1, 17).Value

'cocher si ecrit en gras dans le tableau
If Cells(57 + n - 1, 14).Font.Bold = True Then
Controls("OB" & n & "a").Value = True
Else
Controls("OB" & n & "b").Value = True
End If
'recup du labo
Controls("Llabo" & n).Caption = Cells(57 + n - 1, 18).Value

'recup du bureau
Controls("Lbureau" & n).Caption = Cells(57 + n - 1, 13).Value
Next

j'ai modifié les références relatives parce que je n'y comprends rien.

Bonne suite

edit à 18h45 ; j'ai oublié de préciser : mettre la propriété "visible" des Frames du Userform à "False"
 
Dernière édition:
Re : userform adaptable à x données

Bien qu'on puisse ajouter dynamiquement des contrôles sur une feuille (ce qui n'est pas forcément simple), tu peux toujours le faire graphiquement. Dans l'exemple ci-joint, si tu ajoutes une ligne (une cellule suffit), tu auras 4 zones de saisie, etc.
 

Pièces jointes

Re : userform adaptable à x données

Ouaouhhhhhh!!!!!!!!!!!!!!!!!!!!!!!
ça marche!!!!!!
T'es trop fort Paf!
Puis je me permettre une derniere petite demande....
Comme tu as pu le constater, n varie entre 1 et 6
Existe t'il une commande du userform permettant d'adapter sa taille automatiquement en fonction de ce qui est visible dans ce dernier?

Cela m'éviterait d'afficher un userform plein de vide si "n" est faible....

Merci encore, c top!!

Frédéric
 
Dernière édition:
Re : userform adaptable à x données

Bonjour Dormeur e merci pour ton aide que je découvre tout juste.
Je crois qu'elle contient la réponse à ma derniere question et aussi la création auto d'un userform
Je regarde de suite et reviens vers toi.
Paf, ne te penche donc pas sur ma derniere question.

Merci encore à vous 2
Fred
 
Re : userform adaptable à x données

Rebonjour Dormeur,
Alors là, j'ai vraiment affaire à un magicien!
Merci donc pour cet exemple qui m'épate!
Qui dit magie dit donc que je n'ai pas tout compris....
Donc puis je me permettre qqs questions complémentaire? :
ok pour le calcul de la taille finale de l'userform et son affichage (Me.Height = Valider.Top + 60)

- A quoi correspond et sert "Annuler.Top" ?
- A quoi sert la ligne "nbrLignes = ActiveSheet.UsedRange.Rows.Count"
-Comment as tu défini le pas de 60
- Je veux absolument mettre en place ton exemple et souhaite donc travailler sur les Frame "F" de mon userform.
Comment y accéder?

Vraiment merci d'avance pour tes réponses :
Je rentre dans un nouveau domaine du vba !......

MERCIIIIIIII!!!!!!.......
Fred
 
Re : userform adaptable à x données

Re fredl et dormeur

pour combiner ma proposition et celle de dormeur74, il suffit de rajouter après le next du code proposé:

CommandButton1.Top = Controls("F" & n).Top + 60

'Annuler.Top = Valider.Top
Me.Height = CommandButton1.Top + 60

bonne suite

edit: les frame existent déjà sur la proposition de dormeur74 mais sont hors visuel, d'où son code pour les positionner
 
Dernière édition:
Re : userform adaptable à x données

Merci pour ta remarque, Paf
Je vais la mettre en pratique

Sinon, en espérant ne pas abuser, saurais tu comment acceder aux frame (de dormeur74) qui sont hors visuel?
Merci!

Fred
 
Re : userform adaptable à x données

Si tu veux en avoir le coeur net, tu cliques sous VBE sur la Userform et tu mets les propriétés :
- Width à 1423 (au lieu de 423) et
- Height à 824 au lieu de 124.

On positionne en hauteur (.Top) le bouton "Valider" et on on met le bouton "Annuler" à la même hauteur.

Je crois que paf a tout dit. Allez, je vais aux champignons.
 
Re : userform adaptable à x données

MERCI!!!!!!!!!
Ca y est, je suis magicien!!!!!!
Tu viens (avec Paf) de me faire faire un bon dans la gestion des userforms!!!
C top
Encore merci
Bon champignons!
je vais à la trompete de mort demain
Fred
 
- 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
68
Affichages
9 K
Etoto0026
E
I
Réponses
15
Affichages
2 K
Ic0ne1300
I
M
Réponses
11
Affichages
2 K
Melidan2006
M
E
Réponses
0
Affichages
1 K
edelweiss95
E
D
Réponses
11
Affichages
8 K
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…