Faire apparaître N fois le même userform avec un titre différent

Messages postés
5
Date d'inscription
vendredi 28 décembre 2018
Statut
Membre
Dernière intervention
30 décembre 2018
- - Dernière réponse : cs_Le Pivert
Messages postés
6139
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
- 30 déc. 2018 à 11:11
Bonjour, je suis novice en VBA et vous demande d'être indulgent.

J'ai crée un userform avec des labels, des textbox etc... Je souhaiterais pouvoir afficher plusieurs fois en fonction de la valeur d'une cellule, plusieurs fois cet userform avec une légère variable qui est le nom de mon labelfield. Voici le code que j'ai mis pour changer le nom de ce dernier:

For i = 1 To Sheets("Accueil").Range("E12").Value
UserForm1.Label1.Caption = Cells(i, 27).Value
Next i

i peut aller jusqu'à 100 par défaut. En conséquent je souhaiterais pouvoir faire apparaître 100 fois mon userform avec tout le temps un nom différent (exemple: pour i=1 mon premier Userform est "Paroi " ... to i=x "Paroi x".
Je n'ai vraiment aucune piste à par celle de créer 100 fois le même userform et de changer les valeurs du code à l'intérieur de chaque user, autant dire dans 2 ans j'aurais p-e réussi à finir ^^!
Je compte créer à l'intérieur du userform modèle un code comme celui là:

Cells(9 + 6 * (i - 1), 2).Select
With Selection.Font
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
End With
Cells(9 + 6 * (i - 1), 2).Select
ActiveCell.FormulaR1C1 = "Matériau Paroi 1"

Cells(9 + 6 * (i - 1), 3).Select
ActiveCell.FormulaR1C1 = "Nom"

Cells(9 + 6 * (i - 1), 4).Select
ActiveCell.FormulaR1C1 = "Epaisseur (m)"
Next i
Cells(9 + 6 * (i - 1), 5).Select
ActiveCell.FormulaR1C1 = "Conductivité thermique (W/m.K)"

Cells(9 + 6 * (i - 1), 6).Select
ActiveCell.FormulaR1C1 = "Resistance thermique R "

Cells(10 + 6 * (i - 1), 6).Select
ActiveCell.FormulaR1C1 = "1"

Cells(11 + 6 * (i - 1), 6).Select
ActiveCell.FormulaR1C1 = "2"

Cells(12 + 6 * (i - 1), 6).Select
ActiveCell.FormulaR1C1 = "3"

Cells(13 + 6 * (i - 1), 6).Select
ActiveCell.FormulaR1C1 = "4"


' Cells(9+6*(i-1),2:9+6*(i-1),6).Select (Au passage, comment traduire avec cells Range ("A6:J9") par exemple ?
Any suggestion ?

Merci d'avance à ceux qui pourront me répondre.

Cordialement
Afficher la suite 

2 réponses

Messages postés
6139
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
373
0
Merci
Bonjour,

Utiliser une ComboBox dans laquelle tu mettrais tes 100 noms qui seront au préalable listés dans une colonne. ensuite il te suffira de sélectionner dans ta ComboBox celui que tu désires en donnant le nom sélectionné à ton UserForm.

voir ceci

https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F


VBAKIDS
Messages postés
5
Date d'inscription
vendredi 28 décembre 2018
Statut
Membre
Dernière intervention
30 décembre 2018
-
Merci pour le temps pris, mais ce n'est pas du tout ce que je cherche à effectuer. Le userform "modèle" doit pouvoir se répéter autant de fois que la valeur indiqué dans une cellule. La seule chose qui change dans le userform entre la première fois que je le complète et sa Nieme fois, c'est un labelfield. Pour le changement de nom je pense corriger ma boucle for, mais du moment que je suis bloqué à ouvrir consécutivement ma fenêtre je suis bloqué..

Je souhaite que paroi 1 apparaisse, une fois complétée j'ouvre Paroi 2(automatiquement) , une fois complétée j'ouvre (automatiquement) Paroi 3 etc...
cs_Le Pivert
Messages postés
6139
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
373 -
VBAKIDS
Messages postés
5
Date d'inscription
vendredi 28 décembre 2018
Statut
Membre
Dernière intervention
30 décembre 2018
-
Merci mais c'est pas ce que je cherche.. :/
Commenter la réponse de cs_Le Pivert
Messages postés
5
Date d'inscription
vendredi 28 décembre 2018
Statut
Membre
Dernière intervention
30 décembre 2018
0
Merci
Pour le moment voilà où en est mon code :

Sub Rectangle1_Cliquer()

Dim Form As New UserForm1

For i = 1 To Sheets("Accueil").Range("E12").Value
Form.Label1.Caption = Cells(i, 27).Value


If Sheets("Accueil").Range("E12").Value <> "" Then
Form.Show
End If

Next i


'UserForm1.Show

End Sub

J'arrive à faire apparaître mon userform1 à l'infini (et au delà), mais je n'arrive pas à le faire apparaitre autant de fois que la valeur de mon i.. Et mon code pour modifier le labelfield ne semble plus fonctionner avec Form... Une idée ?
VBAKIDS
Messages postés
5
Date d'inscription
vendredi 28 décembre 2018
Statut
Membre
Dernière intervention
30 décembre 2018
-
Wahou! je ne m'attendais pas à quelque chose d'aussi complet! je me suis lancé sur autre là mais je prends note si jamais mon code ne correspond pas à ce que j'attends. Merci beaucoup @cs_Le Pivert
cs_Le Pivert
Messages postés
6139
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
23 juillet 2019
373 -
Comme je vois ton intérêt, je me suis amusé à personnaliser le code, il te suffira de l'adapter:

https://www.cjoint.com/c/HLEkjiviURQ

@+ Le Pivert
Commenter la réponse de VBAKIDS