Faire apparaître N fois le même userform avec un titre différent
VBAKIDS
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
cs_Le Pivert Messages postés 7904 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Faire apparaître N fois le même userform avec un titre différent
- Trouver un film sans le titre - Télécharger - Divers TV & Vidéo
- Apparaitre hors ligne instagram - Guide
- Comment faire apparaître le curseur sans souris - Guide
- Comment faire apparaître le clavier sur une tablette - Guide
- Apparaitre hors ligne whatsapp - Guide
2 réponses
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
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
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 ?
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 ?
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...
https://silkyroad.developpez.com/VBA/UserForm/#LIII-A-3