Est-il possible d’utiliser le même UserForm avec ses TextBox dans différentes feuilles d’un classeur ? mon projet comprend par exemple des onglets : janvier, février, mars… etc.
Voici mon propos, j’ai un Userform comprenant des TextBox, qui se déclenche en cliquant sur une ligne choisie, mes TextBox sont renseignées sans problème, ainsi je peux créer, ou modifier. Cela fonctionne plutôt bien, sur ma feuille ‘‘Janvier’’, mais si je veux utiliser cet UserForm sur Février ou les autres mois je ne sais pas le faire malgré de nombreuses initiatives, mais surtout à l’aide les différents sujets relevés sur les fils du forum, mais nenni ! malgré les longues heures passées…
J’espère que cela intéressera un ingénieux Excellois, qui passera par là malgré le beau temps
qui règne aujourd’hui.
Je joins mon fichier et vous remercie par avance de ce que pourrez faire.
A bientôt
ICA
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Bonjour et bienvenu sur le forum ICA,
Bonjour Bhbh,
Je répond oui à ta question, c'est possible.
Il suffit pour cela, juste de rajouter 2-3 truc dans ton code, modifier quelques lignes et l'affaire est dans le sac! (mais pour que cela soit le plus simple possible, il faudrait que tes x onglets soient identique!)
Ton fichier n'est pas là! Tu peux refaire la manip?
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Bonjour Ica, bonjour le forum,
Oui tu peux le faire mais il te faudra peut-être adapter tes codes. Pour le lancer pas de problème si tu le lances comme tu dis en cliquant sur une ligne choisie (je ne connais pas cet événement mais je te fais confiance...). Il s'ouvrira donc sur l'onglet actif. Vérifie que tu ne lui aies pas spécifié un onglet à l'ouverture dans le code... Ensuite pour récupérer les données, pense à remplacer le nom de l'onglet (si tu en as mis dans le code) par ActiveSheet. Mais sinon, si tu n'as rien spécifié il devrait tout faire sans problèmes.
Pour terminer, et d'ailleurs j'aurais mieux fait de commencer par là, un fichier joint eût été le bienvenu pour pouvoir y regarder de plus près et te propopser des solutions adéquates (comme Sheila disait Coluche...)
Édition :
Bonjour Bhbh, Excel-lent, on s'est croisé... Pourquoi faut-il toujours que je m'étende là où d'autres disent la même choses avec un concision royale ? Une Sire Concision en quelque sorte...
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Suis navré, je n'arrive pas à mettre ce foutu Zip. peut-être à cause du format car en fait
c'est RAR. peut-être que c'est à cause de cela?
Je vais essayer de bricoler ce truc
En tout cas merci à vous deu pour les premières pistes.
Evitez de vous croiser, respectez le feux tricolores...
A tout à l'heure.
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Re,
En effet, il faut que ton fichier soit compressé avec Winzip. Programme inclus dans le Pack office, sinon téléchargeable facilement et gratuitement sur le net (prgm libre de droit).
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Bonjour ICA,
C'est bien ce qu'on pensait, dans ta macro, tu précise le nom de ta feuille, pas la peine! Remplace Sheets("Janvier 09") par Active.Sheets ainsi il fera toute tes manip non pas sur LA feuille "Janvier 09", mais sur la feuille où tu étais lorsque tu as lancé la macro
Manipulation à faire de partout. Pour information au lieu de répéter ActiveSheets vingt mille fois, tu peux te simplifier la vie ainsi :
Code:
With ActiveSheets
[COLOR="Green"]'ainsi jusqu'à la balise "End With" si tu mets [COLOR="Red"][B]un point[/B][/COLOR] devant ton code, Excel saura que tu veux travailler sur cette feuille : ActiveSheets[/COLOR]
TextBox3 = [COLOR="Red"][B].[/B][/COLOR]Range("c" & Ligne).Text
TextBox4 = [COLOR="Red"][B].[/B][/COLOR]Range("i" & Ligne).Text
TextBox5 = [COLOR="Red"][B].[/B][/COLOR]Range("p" & Ligne).Text
TextBox6 = [COLOR="Red"][B].[/B][/COLOR]Range("q" & Ligne).Text
TextBox7 = [COLOR="Red"][B].[/B][/COLOR]Range("s" & Ligne).Text
TextBox8 = [COLOR="Red"][B].[/B][/COLOR]Range("u" & Ligne).Text
End With
Ou encore mieux, si tu ne précise pas ta feuille (mettre ni sheets("Janvier 09") ni ActiveSheets Excel en déduit que la valeur par défaut est la feuille actuellement sélectionné, donc ta feuille active.
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Re-,
à la place de mettre l'évènement dans le code de la feuille, tu le mets dans le ThisWorkBook :
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Calculate
If Target.Count > 1 Then Exit Sub
If Sh.Name <> "Récap" Then
If Not Application.Intersect(Target, Sh.Range("A4:A8")) Is Nothing Then UserForm.Show
If Not Application.Intersect(Target, Sh.Range("B4:B8")) Is Nothing Then UserForm5.Show
End If
End Sub
et ensuite, tu enlèves tous les Sheets("Janvier09"). dans le code de l'usf 5
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?
Bravo les p'tis gars, je vais me mettre au travail.
Vraiment vous êtes fortiches, je m'étais obstiné avec ces codes convaincus que c'était les bons et que surtout je ne devais pas y toucher. Finalement je suis meilleur pour.. la chaise longue !
Merci à vous tous pour votre collaboration et bon WE.
ICA