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

Fermé
VBAKIDS Messages postés 5 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 30 décembre 2018 - 28 déc. 2018 à 14:56
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 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

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 déc. 2018 à 15:32
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


0
VBAKIDS Messages postés 5 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 30 décembre 2018
Modifié le 28 déc. 2018 à 15:49
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...
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 déc. 2018 à 16:09
Voir ceci pour ajouter un UserForm

https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-3
0
VBAKIDS Messages postés 5 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 30 décembre 2018
28 déc. 2018 à 16:38
Merci mais c'est pas ce que je cherche.. :/
0
VBAKIDS Messages postés 5 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 30 décembre 2018
28 déc. 2018 à 16:40
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 ?
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
28 déc. 2018 à 18:15
0
VBAKIDS Messages postés 5 Date d'inscription vendredi 28 décembre 2018 Statut Membre Dernière intervention 30 décembre 2018
30 déc. 2018 à 10:14
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
30 déc. 2018 à 11:11
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
0