OVH Cloud OVH Cloud

modif de macro pour un userform

8 réponses
Avatar
Viard Jean-Paul
--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant "Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V

8 réponses

Avatar
Pounet95
Bonsoir,
Quelles sont les infos du usf qui diffèrent d'un onglet à un autre ?
Est-il possible d'avoir un exemple de code ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le message
de news:

--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant "Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V



Avatar
Viard Jean-Paul
Bonjour Pounet95
Merci pour ta réponse j'ai tardé because les enfants.
voici un bout de code.
private sub userform_active()
dim textboxscount as integer, c as control
dim labelcount as integer, x as control
' cette partie est inspiré du traitement de pls textbox par michdenis et
adapté-----
labelscount=0
textboxscount=0
for each c in controls
select case typename(c)
case "textbox"
textboxscount=textboxscount+1
redim textbox(1 to textboxescount)
set textboxs(textboxescount).textboxes=c
end select
'----rendre à César ce qui appartient à César
next c
label1.caption=sheets("groupe A").range("c2").value
dim i as integer
for i=1 to 6
controls("textbox" & i).text=sheets("groupe A").range("f" & (6+i)).value
next
for i=7 to 12
controls("textbox"& i).text=sheets("groupe A").range("g" & i).value
next
for i to 15
controls("textbox" & i).caption=sheets("groupe A").range("b" & i-3).value
next
for i to 21
controls("textbox" & i).caption=sheets("groupe A").range("c" & i-9).value
next
end sub
je n'ai pas tout mis il y a 33 textboxs
Et la validation
private sub Commandbutton1_click()
sheets("groupe A).range("f7").value=userform1.textbox1.text
'il y a ainsi une douzaine de lignes
end sub
plus l'impression sur un autre module.
merci Pounet95 pour tes renseignements futur.
J-P V



Bonsoir,
Quelles sont les infos du usf qui diffèrent d'un onglet à un autre ?
Est-il possible d'avoir un exemple de code ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le message
de news:

--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant "Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V







Avatar
Pounet95
Re,
Mille excuses mais je ne comprends toujours pas ce à quoi tu veux en venir.
Pour l'heure il me semble que tu as 10 onglets, et que tu as aussi 10
userforms.
Quel est le but recherché ? Changer les données du userform en fonction de
la feuille sélectionnée ?
Peux-tu éclairer ma lanterne ( et celle de ceux qui liront.répondront ) ?
Au besoin, joint ton fichier sur ce site http://cjoint.com
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le message
de news:
Bonjour Pounet95
Merci pour ta réponse j'ai tardé because les enfants.
voici un bout de code.
private sub userform_active()
dim textboxscount as integer, c as control
dim labelcount as integer, x as control
' cette partie est inspiré du traitement de pls textbox par michdenis et
adapté-----
labelscount=0
textboxscount=0
for each c in controls
select case typename(c)
case "textbox"
textboxscount=textboxscount+1
redim textbox(1 to textboxescount)
set textboxs(textboxescount).textboxes=c
end select
'----rendre à César ce qui appartient à César
next c
label1.caption=sheets("groupe A").range("c2").value
dim i as integer
for i=1 to 6
controls("textbox" & i).text=sheets("groupe A").range("f" & (6+i)).value
next
for i=7 to 12
controls("textbox"& i).text=sheets("groupe A").range("g" & i).value
next
for i to 15
controls("textbox" & i).caption=sheets("groupe A").range("b" & i-3).value
next
for i to 21
controls("textbox" & i).caption=sheets("groupe A").range("c" & i-9).value
next
end sub
je n'ai pas tout mis il y a 33 textboxs
Et la validation
private sub Commandbutton1_click()
sheets("groupe A).range("f7").value=userform1.textbox1.text
'il y a ainsi une douzaine de lignes
end sub
plus l'impression sur un autre module.
merci Pounet95 pour tes renseignements futur.
J-P V



Bonsoir,
Quelles sont les infos du usf qui diffèrent d'un onglet à un autre ?
Est-il possible d'avoir un exemple de code ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le
message
de news:

--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant
"Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V









Avatar
Viard Jean-Paul
Re bonjour
c'est exact tu as trouvé les mots.
je veux changer les données du userform en fonction de la feuille
sélectionnée.
Le programme actuel est répété pour autant de feuille, je trouve çà inutile,
alors
qu'avec un seul se serai plus élégant, moyennant des lignes de code en plus.
Mais pour cette partie je n'ai pas le savoir faire.
Ceci est pour me faire la main sur un projet beaucoup plus important qui est
presque terminé, de facturation , devis archivage et gestion bibliothèque.
Si tu es intéressé...
J-P V


Re,
Mille excuses mais je ne comprends toujours pas ce à quoi tu veux en venir.
Pour l'heure il me semble que tu as 10 onglets, et que tu as aussi 10
userforms.
Quel est le but recherché ? Changer les données du userform en fonction de
la feuille sélectionnée ?
Peux-tu éclairer ma lanterne ( et celle de ceux qui liront.répondront ) ?
Au besoin, joint ton fichier sur ce site http://cjoint.com
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le message
de news:
Bonjour Pounet95
Merci pour ta réponse j'ai tardé because les enfants.
voici un bout de code.
private sub userform_active()
dim textboxscount as integer, c as control
dim labelcount as integer, x as control
' cette partie est inspiré du traitement de pls textbox par michdenis et
adapté-----
labelscount=0
textboxscount=0
for each c in controls
select case typename(c)
case "textbox"
textboxscount=textboxscount+1
redim textbox(1 to textboxescount)
set textboxs(textboxescount).textboxes=c
end select
'----rendre à César ce qui appartient à César
next c
label1.caption=sheets("groupe A").range("c2").value
dim i as integer
for i=1 to 6
controls("textbox" & i).text=sheets("groupe A").range("f" & (6+i)).value
next
for i=7 to 12
controls("textbox"& i).text=sheets("groupe A").range("g" & i).value
next
for i to 15
controls("textbox" & i).caption=sheets("groupe A").range("b" & i-3).value
next
for i to 21
controls("textbox" & i).caption=sheets("groupe A").range("c" & i-9).value
next
end sub
je n'ai pas tout mis il y a 33 textboxs
Et la validation
private sub Commandbutton1_click()
sheets("groupe A).range("f7").value=userform1.textbox1.text
'il y a ainsi une douzaine de lignes
end sub
plus l'impression sur un autre module.
merci Pounet95 pour tes renseignements futur.
J-P V



Bonsoir,
Quelles sont les infos du usf qui diffèrent d'un onglet à un autre ?
Est-il possible d'avoir un exemple de code ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le
message
de news:

--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant
"Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V













Avatar
Pounet95
Re,
Si c'est cela, dans le module ThisWorkbook, tu peux à l'ouverture du
classeur
dans l'évènement WorkBook_Open afficher le usf avec l'option nom modal de
sorte
que tu puisses changer de feuille à loisir par un clic sur onglet par
exemple.

Private Sub Workbook_Open()
UserForm1.Show 0
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
UserForm1.Label1.Caption = "Feuille " & sh.Name
' ici le code avec les infos à charger, modifier, etc

End Sub

Bonne soirée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le message
de news:
Re bonjour
c'est exact tu as trouvé les mots.
je veux changer les données du userform en fonction de la feuille
sélectionnée.
Le programme actuel est répété pour autant de feuille, je trouve çà
inutile,
alors
qu'avec un seul se serai plus élégant, moyennant des lignes de code en
plus.
Mais pour cette partie je n'ai pas le savoir faire.
Ceci est pour me faire la main sur un projet beaucoup plus important qui
est
presque terminé, de facturation , devis archivage et gestion bibliothèque.
Si tu es intéressé...
J-P V


Re,
Mille excuses mais je ne comprends toujours pas ce à quoi tu veux en
venir.
Pour l'heure il me semble que tu as 10 onglets, et que tu as aussi 10
userforms.
Quel est le but recherché ? Changer les données du userform en fonction
de
la feuille sélectionnée ?
Peux-tu éclairer ma lanterne ( et celle de ceux qui liront.répondront ) ?
Au besoin, joint ton fichier sur ce site http://cjoint.com
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le
message
de news:
Bonjour Pounet95
Merci pour ta réponse j'ai tardé because les enfants.
voici un bout de code.
private sub userform_active()
dim textboxscount as integer, c as control
dim labelcount as integer, x as control
' cette partie est inspiré du traitement de pls textbox par michdenis
et
adapté-----
labelscount=0
textboxscount=0
for each c in controls
select case typename(c)
case "textbox"
textboxscount=textboxscount+1
redim textbox(1 to textboxescount)
set textboxs(textboxescount).textboxes=c
end select
'----rendre à César ce qui appartient à César
next c
label1.caption=sheets("groupe A").range("c2").value
dim i as integer
for i=1 to 6
controls("textbox" & i).text=sheets("groupe A").range("f" &
(6+i)).value
next
for i=7 to 12
controls("textbox"& i).text=sheets("groupe A").range("g" & i).value
next
for i to 15
controls("textbox" & i).caption=sheets("groupe A").range("b" &
i-3).value
next
for i to 21
controls("textbox" & i).caption=sheets("groupe A").range("c" &
i-9).value
next
end sub
je n'ai pas tout mis il y a 33 textboxs
Et la validation
private sub Commandbutton1_click()
sheets("groupe A).range("f7").value=userform1.textbox1.text
'il y a ainsi une douzaine de lignes
end sub
plus l'impression sur un autre module.
merci Pounet95 pour tes renseignements futur.
J-P V



Bonsoir,
Quelles sont les infos du usf qui diffèrent d'un onglet à un autre ?
Est-il possible d'avoir un exemple de code ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Viard Jean-Paul" (sansspam)> a écrit dans le
message
de news:

--
Bonjour à tous et à toutes
j'ai dix onglets avec autant d'userform identique.
Commandé chacun par un des dix boutons de la feuille de
présentation.
Je veux utiliser un seul UserForm pour l'ensemble des 10 onglets.
De cette façon un seul programme au lieu de 10.
pour le moment je n'ai pas réussi dans mes essais en utilisant
"Replace".
Je vous remercie d'avance pour le mal que vous vous donné.
J-P.V















Avatar
Daniel.M
Remplace tous les
"Sheets("groupe A")"
par
MaFeuille

Ensuite, il suffit d'assigner la bonne feuille à MaFeuille.
Peut-être est-ce toujours la feuille active (à partir de laquelle est invoqué
l'UserForm)? Si c'est le cas:

Au début de ta procédure userform_active() :

Set MaFeuille = ActiveSheet

Idem pour les Commandbutton1_click() et autre : tu remplaces l'assignation
explicite,
Sheets("groupe A")
par
MaFeuille

en ayant assigné préalablement la bonne feuille à MaFeuille.

Si ce n'est pas l'ActiveSheet, tu dois connaître la règle qui détermine la bonne
feuille.

Salutations,

Daniel M.
Avatar
Viard Jean-Paul
Re Pounet95 et Daniel.M
Merci pour ces précieux renseignements à présent au boulot.
Je voyais les chose plus compliqué, avec différentes tentatives
j'avais réussi à modifier l'appel de feuille puis j'ai perdu mon code.
Comme quoi il faut faire appel aux spécialistes.
merci à tous deux et bonne nuit.
J-P V



Remplace tous les
"Sheets("groupe A")"
par
MaFeuille

Ensuite, il suffit d'assigner la bonne feuille à MaFeuille.
Peut-être est-ce toujours la feuille active (à partir de laquelle est invoqué
l'UserForm)? Si c'est le cas:

Au début de ta procédure userform_active() :

Set MaFeuille = ActiveSheet

Idem pour les Commandbutton1_click() et autre : tu remplaces l'assignation
explicite,
Sheets("groupe A")
par
MaFeuille

en ayant assigné préalablement la bonne feuille à MaFeuille.

Si ce n'est pas l'ActiveSheet, tu dois connaître la règle qui détermine la bonne
feuille.

Salutations,

Daniel M.





Avatar
Viard Jean-Paul
Bonjour "Pounet95" et "Daniel.M" et à tous

J'ai effectué les manips comme indiqué
çà marche impeccable.
merci à bientôt.
J-P V


Re Pounet95 et Daniel.M
Merci pour ces précieux renseignements à présent au boulot.
Je voyais les chose plus compliqué, avec différentes tentatives
j'avais réussi à modifier l'appel de feuille puis j'ai perdu mon code.
Comme quoi il faut faire appel aux spécialistes.
merci à tous deux et bonne nuit.
J-P V



Remplace tous les
"Sheets("groupe A")"
par
MaFeuille

Ensuite, il suffit d'assigner la bonne feuille à MaFeuille.
Peut-être est-ce toujours la feuille active (à partir de laquelle est invoqué
l'UserForm)? Si c'est le cas:

Au début de ta procédure userform_active() :

Set MaFeuille = ActiveSheet

Idem pour les Commandbutton1_click() et autre : tu remplaces l'assignation
explicite,
Sheets("groupe A")
par
MaFeuille

en ayant assigné préalablement la bonne feuille à MaFeuille.

Si ce n'est pas l'ActiveSheet, tu dois connaître la règle qui détermine la bonne
feuille.

Salutations,

Daniel M.