Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?.

ICA

XLDnaute Nouveau
Bonjour le Forum,

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:)
 

Cousinhub

XLDnaute Barbatruc
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?

Bonsoir,

peux-tu montrer le code qui te permet de charger ton userform?

ainsi que le code qui permet de transférer tes textboxs vers la feuille?

A te relire
 

Excel-lent

XLDnaute Barbatruc
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?

A te lire

Edition : bonjour Robert
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
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...
 
Dernière édition:

ICA

XLDnaute Nouveau
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.
 

Excel-lent

XLDnaute Barbatruc
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?

Salut ICA,

Ton fichier n'est toujours pas là!

Est-ce qu'il ne dépasse les quota du forum? Si oui, enlève les choses inutile pour alléger ton fichier ;) Et réessaye!

A te lire
 

Cousinhub

XLDnaute Barbatruc
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?

Re-,

comme demandé dans mon premier post, colle le code ici (entre quotes)

pour ce faire, tu copies ton code, tu cliques sur le # en haut, et tu colles le ou les codes entre les balises...

A te relire
 

Excel-lent

XLDnaute Barbatruc
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).

A bientôt
 

jeanpierre

Nous a quitté
Repose en paix
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?

Bonsoir à tous,

Pourquoi .RAR alors que Windows sait compresser.... Clic droit sur ton fichier et Envoyer vers/Dossier compressé.... et c'est bon....

Bonne soirée.

Jean-Pierre
 

ICA

XLDnaute Nouveau
Re : Peut-on utiliser le même UserForm dans différentes feuilles d’un même classeur ?

Excusez du retard, mais j'ai passe bcp de temps à faire un régime à mon fichier, j'espère que cette fois-ci mon bazar passera.
ICA:)
 

Pièces jointes

  • Maquette Récap 2009.zip
    48.4 KB · Affichages: 91

Excel-lent

XLDnaute Barbatruc
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

Ce qui donne, remplacer le code ci-dessous :
Code:
TextBox3 = Sheets("Janvier 09").Range("c" & Ligne).Text
TextBox4 = Sheets("Janvier 09").Range("i" & Ligne).Text
TextBox5 = Sheets("Janvier 09").Range("p" & Ligne).Text
TextBox6 = Sheets("Janvier 09").Range("q" & Ligne).Text
TextBox7 = Sheets("Janvier 09").Range("s" & Ligne).Text
TextBox8 = Sheets("Janvier 09").Range("u" & Ligne).Text

Par le code suivant :
Code:
TextBox3 = ActiveSheets.Range("c" & Ligne).Text
TextBox4 = ActiveSheets.Range("i" & Ligne).Text
TextBox5 = ActiveSheets.Range("p" & Ligne).Text
TextBox6 = ActiveSheets.Range("q" & Ligne).Text
TextBox7 = ActiveSheets.Range("s" & Ligne).Text
TextBox8 = ActiveSheets.Range("u" & Ligne).Text

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.

Bref tu peux écrire ton code ci-dessus ainsi :
Code:
TextBox3 = Range("c" & Ligne).Text
TextBox4 = Range("i" & Ligne).Text
TextBox5 = Range("p" & Ligne).Text
TextBox6 = Range("q" & Ligne).Text
TextBox7 = Range("s" & Ligne).Text
TextBox8 = Range("u" & Ligne).Text

Bien sûr, sauf si juste avant ton code, tu as écrit une ligne du genre Sheets("...").select

Eviter le code select sinon tu seras obligé de prendre une des 2 méthodes plus haut.

Autre avantage de ne pas utiliser la fonction select, ton code sera plus rapide.

Bonne modification
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
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

Code:
Sheets("Janvier09").Range("b" & Ligne).Text

devient :

Code:
Range("b" & Ligne).Text
 

ICA

XLDnaute Nouveau
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