Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

remplacer formulaire par userform

10 réponses
Avatar
pierre52
bonsoir à toutes et tous,

merci pour votre aide déjà apporté mais j'ai encore besoin d'un coup de
main.
j'ai un userform avec 20 textboxes qui doivent remplir une ligne (qu'il
soient renseigné ou non) d'un tableau qui commence à la cellule Bx et
ensuite la ligne qui commence à Bx+1
en fait je cherche à remplacer un formulaire(tout gris) par un user form
qui est beaucoup plus convivial(image,couleur,...)
si je n'ai pas été assez clair demandez de éclaircissements

merci de vos réponses

10 réponses

Avatar
pierre52
bonsoir à toutes et tous,

merci pour votre aide déjà apporté mais j'ai encore besoin d'un coup de
main.
j'ai un userform avec 20 textboxes qui doivent remplir une ligne (qu'il
soient renseigné ou non) d'un tableau qui commence à la cellule Bx et
ensuite la ligne qui commence à Bx+1
en fait je cherche à remplacer un formulaire(tout gris) par un user form
qui est beaucoup plus convivial(image,couleur,...)
si je n'ai pas été assez clair demandez de éclaircissements

merci de vos réponses


bon en fait ,je suis arrivé à ce que je voulais
mais,car ily a pratiquement toujours un mais,
ma manière de faire est crrecte si je fais tout à la suite
c'est quand j'arrête et que je veux reprendre que les choses se gâtent
voici une partie de mon code en fait la fin de ma ligne,j'ai 20 txtboxes

ActiveCell.Value = UsFDome.TextBox19.Text
ActiveCell.Offset(0, 1).Select

ActiveCell.Value = UsFDome.TextBox20.Text
ActiveCell.Offset(1, -19).Select

si j'arrete à ce niveau là quand je recommence je réecris sur la 1° ligne
voila le code d'appel de mon userform

Private Sub CommandButton2_Click()
Range("B4").Select
UsFDome.Show
End Sub

je suis sur que c'est la selection de b4 qui me fait ça
mais je ne sais pas faire autrement

merci de votre aide , de votre disponibilité et patience

Avatar
Jean-Claude
| bon en fait ,je suis arrivé à ce que je voulais
| mais,car ily a pratiquement toujours un mais,
| ma manière de faire est crrecte si je fais tout à la suite
| c'est quand j'arrête et que je veux reprendre que les choses se gâtent
| voici une partie de mon code en fait la fin de ma ligne,j'ai 20
txtboxes
|
| ActiveCell.Value = UsFDome.TextBox19.Text
| ActiveCell.Offset(0, 1).Select
|
| ActiveCell.Value = UsFDome.TextBox20.Text
| ActiveCell.Offset(1, -19).Select
|
| si j'arrete à ce niveau là quand je recommence je réecris sur la 1°
ligne
| voila le code d'appel de mon userform
|
| Private Sub CommandButton2_Click()
| Range("B4").Select
| UsFDome.Show
| End Sub
|
| je suis sur que c'est la selection de b4 qui me fait ça
| mais je ne sais pas faire autrement
|

Salut,

Je suppose que :
tu saisis les réponses données dans l'évènement de sortie correcte
de ton Usf
tu te trouves dans la feuille avtive
tu dois saisir dans la 1ere ligne vide de la colonne B

sub SortieCorrect()
DernièreLigne=range("B65536").End(xlUp).row
Col=1
for i = 1 to 19
Cells(DernièreLigne,Col+i).Value = UsFDome.controls("TextBox" &
i).Text
next i
Cells(DernièreLigne+1,2).Value = UsFDome.controls("TextBox20").Text
end sub

A la volée, je pense que celà pourrait convenir
A+
Jc
Avatar
pierre52
| bon en fait ,je suis arrivé à ce que je voulais
| mais,car ily a pratiquement toujours un mais,
| ma manière de faire est crrecte si je fais tout à la suite
| c'est quand j'arrête et que je veux reprendre que les choses se gâtent
| voici une partie de mon code en fait la fin de ma ligne,j'ai 20
txtboxes
|
| ActiveCell.Value = UsFDome.TextBox19.Text
| ActiveCell.Offset(0, 1).Select
|
| ActiveCell.Value = UsFDome.TextBox20.Text
| ActiveCell.Offset(1, -19).Select
|
| si j'arrete à ce niveau là quand je recommence je réecris sur la 1°
ligne
| voila le code d'appel de mon userform
|
| Private Sub CommandButton2_Click()
| Range("B4").Select
| UsFDome.Show
| End Sub
|
| je suis sur que c'est la selection de b4 qui me fait ça
| mais je ne sais pas faire autrement
|

Salut,

Je suppose que :
tu saisis les réponses données dans l'évènement de sortie correcte
de ton Usf
tu te trouves dans la feuille avtive
tu dois saisir dans la 1ere ligne vide de la colonne B

sub SortieCorrect()
DernièreLigne=range("B65536").End(xlUp).row
Col=1
for i = 1 to 19
Cells(DernièreLigne,Col+i).Value = UsFDome.controls("TextBox" &
i).Text
next i
Cells(DernièreLigne+1,2).Value = UsFDome.controls("TextBox20").Text
end sub

A la volée, je pense que celà pourrait convenir
A+
Jc


merci de t'interresser à mon cas

mais pourrais tu me dire où placer ton code car après différents essais
j'ai des trucs bizzares du genre ça rentre les données sur ma ligne d'en
têtes de colonne(ligne2) et aussi la ligne sous la dernière cellule
sélectionné: si par hasard j'ai h12 de sélectionnée cela remplira à
partir de h13
j'ai essayé en mettant ton code dans la commande d'appel de mon userform
ou au début de mon code ou à la fin
je comprends plus
merci de ta réponse

Avatar
Jean-Claude
| merci de t'interresser à mon cas
| mais pourrais tu me dire où placer ton code car après différents
essais
| j'ai des trucs bizzares du genre ça rentre les données sur ma ligne
d'en
| têtes de colonne(ligne2) et aussi la ligne sous la dernière cellule
| sélectionné: si par hasard j'ai h12 de sélectionnée cela remplira à
| partir de h13
| j'ai essayé en mettant ton code dans la commande d'appel de mon
userform
| ou au début de mon code ou à la fin
| je comprends plus
| merci de ta réponse

Salut,
Excuse, petite erreur d'interprétation de ce que tu as écrit
Je présume que tu as créé un bouton dans l'onglet qui doit recevoir les
données.
La ligne Range("B65536").End(xlUp).Offset(1).Select permet de
selectionner la 1ere cellule vide de la colonne B, donc a priori, celle
où tu désires inscrire les données de ton Usf

Private Sub CommandButton2_Click()
Range("B65536").End(xlUp).Offset(1).Select
UsFDome.Show
End Sub

Danston UsFDome tu dois avoir un bouton qui permet de sortir d'en
sortir proprement :et un qui te permet d'en sortir sans rien faire, le
"Ok" et le annuler.
Soit CommandButton1 le nom du Ok
Dans son évènement Click inscrire le code suivant.

Private Sub CommandButton1_Click()
DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20 Cells(DernièreLigne, Col + i).Value =
Me.Controls("TextBox" & i).Text
Next i
Me.Hide
End Sub

A+
Jc
Avatar
pierre52
| merci de t'interresser à mon cas
| mais pourrais tu me dire où placer ton code car après différents
essais
| j'ai des trucs bizzares du genre ça rentre les données sur ma ligne
d'en
| têtes de colonne(ligne2) et aussi la ligne sous la dernière cellule
| sélectionné: si par hasard j'ai h12 de sélectionnée cela remplira à
| partir de h13
| j'ai essayé en mettant ton code dans la commande d'appel de mon
userform
| ou au début de mon code ou à la fin
| je comprends plus
| merci de ta réponse

Salut,
Excuse, petite erreur d'interprétation de ce que tu as écrit
Je présume que tu as créé un bouton dans l'onglet qui doit recevoir les
données.
La ligne Range("B65536").End(xlUp).Offset(1).Select permet de
selectionner la 1ere cellule vide de la colonne B, donc a priori, celle
où tu désires inscrire les données de ton Usf

Private Sub CommandButton2_Click()
Range("B65536").End(xlUp).Offset(1).Select
UsFDome.Show
End Sub

Danston UsFDome tu dois avoir un bouton qui permet de sortir d'en
sortir proprement :et un qui te permet d'en sortir sans rien faire, le
"Ok" et le annuler.
Soit CommandButton1 le nom du Ok
Dans son évènement Click inscrire le code suivant.

Private Sub CommandButton1_Click()
DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20 Cells(DernièreLigne, Col + i).Value =
Me.Controls("TextBox" & i).Text
Next i
Me.Hide
End Sub

A+
Jc


merci de répondre

avec ton code placé où tu le dit il faut toujours que la bonne cellule
de départ soit sélectionné sinon cela commence à la dernière sélectionnée
de plus si tu veux faire 2 enregistrements à la suit ,le2° efface le
précédent
merci de t'occuper de mon cas

Avatar
Jean-Claude
| > Private Sub CommandButton2_Click()
| > Range("B65536").End(xlUp).Offset(1).Select
| > UsFDome.Show
| > End Sub
| >
| > Danston UsFDome tu dois avoir un bouton qui permet de sortir d'en
| > sortir proprement :et un qui te permet d'en sortir sans rien faire,
le
| > "Ok" et le annuler.
| > Soit CommandButton1 le nom du Ok
| > Dans son évènement Click inscrire le code suivant.
| >
| > Private Sub CommandButton1_Click()
| > DernièreLigne = ActiveCell.Row
| > Col = ActiveCell.Column - 1
| > For i = 1 To 20 Cells(DernièreLigne, Col + i).Value | > Me.Controls("TextBox" & i).Text
| > Next i
| > Me.Hide
| > End Sub

| merci de répondre
| avec ton code placé où tu le dit il faut toujours que la bonne cellule
| de départ soit sélectionné sinon cela commence à la dernière
sélectionnée
| de plus si tu veux faire 2 enregistrements à la suit ,le2° efface le

cad sans sortir du Usf?

| précédent
| merci de t'occuper de mon cas

et en remettant la ligne
Range("B65536").End(xlUp).Offset(1).Select
en 1ere ligne de la Private Sub CommandButton1_Click() ?
pour éviter d'effacer les dernières données saisies.

Par ailleurs, tu disais dans un de tes messages
"j'ai un userform avec 20 textboxes qui doivent remplir une ligne
(qu'il soient renseigné ou non) d'un tableau qui commence à la cellule
Bx et ensuite la ligne qui commence à Bx+1"
j'ai supposé que le x de Bx était la 1ere ligne vide de la colonne B. Ce
n'est peut-être pas le cas ?
Avatar
pierre52
| > Private Sub CommandButton2_Click()
| > Range("B65536").End(xlUp).Offset(1).Select
| > UsFDome.Show
| > End Sub
| >
| > Danston UsFDome tu dois avoir un bouton qui permet de sortir d'en
| > sortir proprement :et un qui te permet d'en sortir sans rien faire,
le
| > "Ok" et le annuler.
| > Soit CommandButton1 le nom du Ok
| > Dans son évènement Click inscrire le code suivant.
| >
| > Private Sub CommandButton1_Click()
| > DernièreLigne = ActiveCell.Row
| > Col = ActiveCell.Column - 1
| > For i = 1 To 20 Cells(DernièreLigne, Col + i).Value > | > Me.Controls("TextBox" & i).Text
| > Next i
| > Me.Hide
| > End Sub

| merci de répondre
| avec ton code placé où tu le dit il faut toujours que la bonne cellule
| de départ soit sélectionné sinon cela commence à la dernière
sélectionnée
| de plus si tu veux faire 2 enregistrements à la suit ,le2° efface le

cad sans sortir du Usf?


oui

| précédent
| merci de t'occuper de mon cas

et en remettant la ligne
Range("B65536").End(xlUp).Offset(1).Select
en 1ere ligne de la Private Sub CommandButton1_Click() ?
pour éviter d'effacer les dernières données saisies.

Par ailleurs, tu disais dans un de tes messages
"j'ai un userform avec 20 textboxes qui doivent remplir une ligne
(qu'il soient renseigné ou non) d'un tableau qui commence à la cellule
Bx et ensuite la ligne qui commence à Bx+1"


merci beaucoup cela fonctionne à merveille

j'ai supposé que le x de Bx était la 1ere ligne vide de la colonne B. Ce
n'est peut-être pas le cas ?

oui car en fait j'ai un autre userform qui lui doit commencer à remplir

ce tableau à partir de la ligne34.je comptais adapter mais avec Offset
cela dépend de la dernière ligne pleine du début du tableau non?
alors qu'il ne faut pas en tenir compte et juste faire à partir de la
ligne 34

j'abuse peut être un peu mais encore merci beaucoup

Avatar
Jean-Claude
| > j'ai supposé que le x de Bx était la 1ere ligne vide de la colonne
B. Ce
| > n'est peut-être pas le cas ?
| >
| oui car en fait j'ai un autre userform qui lui doit commencer à
remplir
| ce tableau à partir de la ligne34.je comptais adapter mais avec Offset
| cela dépend de la dernière ligne pleine du début du tableau non?
| alors qu'il ne faut pas en tenir compte et juste faire à partir de la
| ligne 34
|
| j'abuse peut être un peu mais encore merci beaucoup
|

Private Sub CommandButton1_Click()
Range("B34").End(xlUp).Offset(1).Select
DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20
Cells(DernièreLigne, Col + i).Value = Me.Controls("TextBox" & i).Text
Next i
End Sub

Dans ce cas on recherche la 1ère cellule vide au-dessus de la cellule
B34. Quand toutes les lignes sont remplies le processus s'arrête

En espérant avair répondu à ta question


A+
Jc
Avatar
pierre52
| > j'ai supposé que le x de Bx était la 1ere ligne vide de la colonne
B. Ce
| > n'est peut-être pas le cas ?
| >
| oui car en fait j'ai un autre userform qui lui doit commencer à
remplir
| ce tableau à partir de la ligne34.je comptais adapter mais avec Offset
| cela dépend de la dernière ligne pleine du début du tableau non?
| alors qu'il ne faut pas en tenir compte et juste faire à partir de la
| ligne 34
|
| j'abuse peut être un peu mais encore merci beaucoup
|

Private Sub CommandButton1_Click()
Range("B34").End(xlUp).Offset(1).Select
DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20
Cells(DernièreLigne, Col + i).Value = Me.Controls("TextBox" & i).Text
Next i
End Sub

Dans ce cas on recherche la 1ère cellule vide au-dessus de la cellule
B34. Quand toutes les lignes sont remplies le processus s'arrête

En espérant avair répondu à ta question


A+
Jc


encore merci

mais cela rempli la 1° ligne vide dans la 1° partie du tableau

encore merci de ton aide

Avatar
pierre52
bonsoir à toutes et tous,

merci pour votre aide déjà apporté mais j'ai encore besoin d'un coup de
main.
j'ai un userform avec 20 textboxes qui doivent remplir une ligne (qu'il
soient renseigné ou non) d'un tableau qui commence à la cellule Bx et
ensuite la ligne qui commence à Bx+1
en fait je cherche à remplacer un formulaire(tout gris) par un user form
qui est beaucoup plus convivial(image,couleur,...)
si je n'ai pas été assez clair demandez de éclaircissements

merci de vos réponses


merci à toi jean claude de ta patience

voici comment j'ai résolu mon problème

Private Sub CommandButton2_Click()

Worksheets("Feuil1").Range("B3").Select
Do Until IsEmpty(ActiveCell) = True
ActiveCell.Offset(1, 0).Select
Loop
DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20
Cells(DernièreLigne, Col + i).Value = Me.Controls("TextBox" &
i).Text
Next i

End Sub

et en l'adaptant pour la 2°partie du tableau en rajoutant une ligne et
en la masquant avec une cellule pleine B34

Worksheets("Feuil1").Range("B35").Select
Do Until IsEmpty(ActiveCell) = True
ActiveCell.Offset(1, 0).Select
Loop

DernièreLigne = ActiveCell.Row
Col = ActiveCell.Column - 1
For i = 1 To 20
Cells(DernièreLigne, Col + i).Value = Me.Controls("TextBox" &
i).Text
Next i
End Sub

et voila

je te remercie pour ton bout de code beaucoup plus élégant que le mien
encore merci
et bonne soirée