OVH Cloud OVH Cloud

grille de saisie

28 réponses
Avatar
fréro
bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je viens de
me rendre compte que je me suis (comme d'habitude)mal exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui remplirait
directement un tableau Excel a chaque enregistrement d'un adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro

10 réponses

1 2 3
Avatar
fréro
en espérant que ça marche

http://www.cijoint.fr/cjlink.php?file=cj200903/cijeANNLx5.xls
"isabelle" a écrit dans le message de
news:
c'est normal, c'est pour que tu y dépose ton brouillon,
tu as dit avoir de la difficulté avec http://www.cjoint.com/ c'est pour
cette raison que je t'ai proposé http://www.cijoint.fr/

isabelle

fréro a écrit :
bonjour
merci pour votre aide mais le liens est vide
fréro
"isabelle" a écrit dans le message de
news:OC$
bonjour fréro,

essaie celui-ci :
http://www.cijoint.fr/

isabelle

fréro a écrit :
un p'tit problème de mise sur le site de mon brouillon
à +
"Jacky" a écrit dans le message de
news:

Re...
Mets ton fichier brouillon sur
http://www.cjoint.com/

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonsoir
oui mais dans les cases du formulaire mon problème c'est que je ne
sais pas introduire une voire des listes de choix exemple
titre:
monsieur,madame,ou mademoiselle etc...
fréro

"Jacky" a écrit dans le message de
news:
Bonsoir,

Elle existe cette grille
Données / formulaire
en ayant pris soin de faire des entêtes de ligne

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je
viens de me rendre compte que je me suis (comme d'habitude)mal
exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui
remplirait directement un tableau Excel a chaque enregistrement
d'un adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro























Avatar
isabelle
fréro a écrit :
en espérant que ça marche

http://www.cijoint.fr/cjlink.php?file=cj200903/cijeANNLx5.xls



c'est bon, voici ton fichier modifié avec un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijjMsGb8A.xls

isabelle
Avatar
fréro
bonjour LSteph
ça patauge un peu mais ça avance bien...
en tous cas cela représente bien ce que je souhaitait faire
il va falloir que me "tuyaute" pour les raccourcis clavier
encore merci et à suivre
fréro

"LSteph" a écrit dans le message de
news:
Bonjour,
dans ce cas tu vas apprendre un peu de VBA et commencer à construire un
userform, exemple

Etape1
------
Nouveau Classeur
on met des titres de A à I en ligne 1
Civilité Nom Prénom Adresse1 Adresse2 Code Postal Ville Tél Ref

Alt+F11 On y va (dans le VBE)

Etape2
------
Insertion userform 1 clic
F4 J'affiche la fenêtre des propriétés (si ce n'est pas déjà le cas )
dedans je cherche la propriété width et la mets à 270 et height à 400
puis dans caption j'écris saisie

je fais un clic dans mon UserForm

Depuis la Boite outils Controles on ajoute deux commandbuttons en haut à
droite
puis à gauche de haut en bas 8 textbox le premiers à 5 points de la
grille les autres espacés de 3 au moins et au dessus de chacun 8 labels.

Je sélectionne tous mes textbox et labels et je règle left à 15 et width à
100 puis pour textbox4 et textbox5 je met à width 220

Je supprime textbox1 et le remplace par une combobox
(Zone de liste déroulante)

Voilà je sais un peu manipuler des contrôles.

Doubleclic dans Userform1

Etape3
------

Dans le déroulant droit de la fenêtre de code de userform1 qui apparaît
je choisis initialize et mets le code qui suit dedans:

Private Sub UserForm_Initialize()

Dim i As Byte
For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With

End Sub

'j'execute ce code pour l'instant il ne fait pas grand chose
'à part cela
'mais il est l'heure d'aller dormir .. on clique sur la croix
'suite à la prochaine si cela t'intéresse

'lSteph

' http://cjoint.com/?dhbzdZUSIu





fréro a écrit :
bonsoir
oui mais dans les cases du formulaire mon problème c'est que je ne sais
pas introduire une voire des listes de choix exemple
titre:
monsieur,madame,ou mademoiselle etc...
fréro

"Jacky" a écrit dans le message de
news:
Bonsoir,

Elle existe cette grille
Données / formulaire
en ayant pris soin de faire des entêtes de ligne

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je viens
de me rendre compte que je me suis (comme d'habitude)mal exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui
remplirait directement un tableau Excel a chaque enregistrement d'un
adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro











Avatar
fréro
bonjour
les messages se croises
merci je vais voir le lien
fréro
"isabelle" a écrit dans le message de
news:%


fréro a écrit :
en espérant que ça marche

http://www.cijoint.fr/cjlink.php?file=cj200903/cijeANNLx5.xls



c'est bon, voici ton fichier modifié avec un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijjMsGb8A.xls

isabelle


Avatar
fréro
bonsoir
j'ai installé le fichier brouillon 1
en 1ère étape j'avais construit le formulaire suivant ce principe (ormis que
je ne trouve pas la fonction : insertion texte. avec Excel 2007)
c'est de la que je suis parti de faire une grille de saisie pour faire les
enregistrements
naïvement je pensais qu'avec exc 2007 -sans VBA il existait une solution .
avec Access 2007 c'est jouable mais tous les membres de notre bureau ne
l'ont pas
tantôt je me suis lancé dans le VBA et regardé la préparation de LSteph et
je vais retourner voire
http://www.excelabo.net/excel/pap-userform.php

"isabelle" a écrit dans le message de
news:%


fréro a écrit :
en espérant que ça marche

http://www.cijoint.fr/cjlink.php?file=cj200903/cijeANNLx5.xls



c'est bon, voici ton fichier modifié avec un exemple :
http://www.cijoint.fr/cjlink.php?file=cj200903/cijjMsGb8A.xls

isabelle


Avatar
LSteph
Bonsoir,

(exemple tout fait est là http://cjoint.com/?dhvryrx7Oz
mais c'est mieux d'essayer de le réaliser)

...

Etape4
(on va animer tout cela)

Puisqu'on est de retour dans Excel
clic droit sur le petit onglet de Feuil1
Visualiser le Code
(afin d'afficher le Userform sur doubleclic dans la feuille on pourrait
coller ceci dans le module de Feuil1)

'''''
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''

Ca marche
Mais on va devoir renvoyer des infos du Userform vers la feuille
pour savoir où
on va cibler si le doubleclic à lieu dans une cellule vide ou remplie
et selon le cas envisager soit l'ajout soit la modification d'un
enregistrement.
Pour garder la cible selon qu'on est dans l'appli la feuille ou userform
on va utiliser un Module standard et y insérer une variable (globale)*
ici nommée myC * déclarée Public
puis on va modifier un peu les codes , de la feuille et du userform
Afin de controler la présence des données avant de valider.
''''''''''''''''''''''

'dans module1

Option Explicit
Public myC As Range

'''''

'dans le code de Feuil1

Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True

If Len(Target) = 0 Then
Set myC = [a65536].End(xlUp)(2)
Else
If Target.Row = 1 Then
Set myC = Target.Offset(1, 0)
Else
Set myC = Target
End If
End If
UserForm1.Show
End Sub

'''''

'dans userform1

Option Explicit

Private Sub CommandButton1_Click()
'Validation
Dim i As Byte
For i = 2 To 7
If i <> 5 Then 'adresse2 facultative
With Me.Controls("Textbox" & i)
If Len(.Value) = 0 Then
.SetFocus: MsgBox "incomplet": Exit Sub
End If
End With
End If
Next
With myC
.Value = Me.ComboBox1
On Error Resume Next
For i = 2 To 8

.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next
End With
Unload Me
End Sub

Private Sub CommandButton2_Click()
'Annulation
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim i As Byte

For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With
If myC <> "" Then
With myC
ComboBox1 = .Value
For i = 2 To 8
Me.Controls("TextBox" & i) = _
.Offset(0, i - 1)
Next
End With
End If

End Sub
''''''''''''''''''''''''''''''

'@+

'lSteph




LSteph a écrit :
Bonjour,
dans ce cas tu vas apprendre un peu de VBA et commencer à construire un
userform, exemple

Etape1
------
Nouveau Classeur
on met des titres de A à I en ligne 1
Civilité Nom Prénom Adresse1 Adresse2 Code Postal
Ville Tél Ref

Alt+F11 On y va (dans le VBE)

Etape2
------
Insertion userform 1 clic
F4 J'affiche la fenêtre des propriétés (si ce n'est pas déjà le cas )
dedans je cherche la propriété width et la mets à 270 et height à 400
puis dans caption j'écris saisie

je fais un clic dans mon UserForm

Depuis la Boite outils Controles on ajoute deux commandbuttons en haut à
droite
puis à gauche de haut en bas 8 textbox le premiers à 5 points de la
grille les autres espacés de 3 au moins et au dessus de chacun 8 labels.

Je sélectionne tous mes textbox et labels et je règle left à 15 et width
à 100 puis pour textbox4 et textbox5 je met à width 220

Je supprime textbox1 et le remplace par une combobox
(Zone de liste déroulante)

Voilà je sais un peu manipuler des contrôles.

Doubleclic dans Userform1

Etape3
------

Dans le déroulant droit de la fenêtre de code de userform1 qui apparaît
je choisis initialize et mets le code qui suit dedans:

Private Sub UserForm_Initialize()

Dim i As Byte
For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With

End Sub

'j'execute ce code pour l'instant il ne fait pas grand chose
'à part cela
'mais il est l'heure d'aller dormir .. on clique sur la croix
'suite à la prochaine si cela t'intéresse

'lSteph

' http://cjoint.com/?dhbzdZUSIu





fréro a écrit :
bonsoir
oui mais dans les cases du formulaire mon problème c'est que je ne
sais pas introduire une voire des listes de choix exemple
titre:
monsieur,madame,ou mademoiselle etc...
fréro

"Jacky" a écrit dans le message de
news:
Bonsoir,

Elle existe cette grille
Données / formulaire
en ayant pris soin de faire des entêtes de ligne

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je
viens de me rendre compte que je me suis (comme d'habitude)mal exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui
remplirait directement un tableau Excel a chaque enregistrement d'un
adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro











Avatar
fréro
bonsoir et merci pour votre travail
l'exemple correspond bien à ce que je veux faire
demain je vais suivre la procédure pour construire le formulaire
tantôt j'ai effectué la 1ère partie ....après un blocage suite à une erreur
de ma part (end writh - en trop) ça a fonctionner
encore merci,car je suis entrain de découvrir le VBA
ça prend la tête mais c'est très intéressant
bonne nuit
la fermeture va être plus tôt qu'hier
fréro
"LSteph" a écrit dans le message de
news:eZIrF%
Bonsoir,

(exemple tout fait est là http://cjoint.com/?dhvryrx7Oz
mais c'est mieux d'essayer de le réaliser)

...

Etape4
(on va animer tout cela)

Puisqu'on est de retour dans Excel
clic droit sur le petit onglet de Feuil1
Visualiser le Code
(afin d'afficher le Userform sur doubleclic dans la feuille on pourrait
coller ceci dans le module de Feuil1)

'''''
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''

Ca marche
Mais on va devoir renvoyer des infos du Userform vers la feuille
pour savoir où
on va cibler si le doubleclic à lieu dans une cellule vide ou remplie
et selon le cas envisager soit l'ajout soit la modification d'un
enregistrement.
Pour garder la cible selon qu'on est dans l'appli la feuille ou userform
on va utiliser un Module standard et y insérer une variable (globale)*
ici nommée myC * déclarée Public
puis on va modifier un peu les codes , de la feuille et du userform
Afin de controler la présence des données avant de valider.
''''''''''''''''''''''

'dans module1

Option Explicit
Public myC As Range

'''''

'dans le code de Feuil1

Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True

If Len(Target) = 0 Then
Set myC = [a65536].End(xlUp)(2)
Else
If Target.Row = 1 Then
Set myC = Target.Offset(1, 0)
Else
Set myC = Target
End If
End If
UserForm1.Show
End Sub

'''''

'dans userform1

Option Explicit

Private Sub CommandButton1_Click()
'Validation
Dim i As Byte
For i = 2 To 7
If i <> 5 Then 'adresse2 facultative
With Me.Controls("Textbox" & i)
If Len(.Value) = 0 Then
.SetFocus: MsgBox "incomplet": Exit Sub
End If
End With
End If
Next
With myC
.Value = Me.ComboBox1
On Error Resume Next
For i = 2 To 8

.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next
End With
Unload Me
End Sub

Private Sub CommandButton2_Click()
'Annulation
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim i As Byte

For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With
If myC <> "" Then
With myC
ComboBox1 = .Value
For i = 2 To 8
Me.Controls("TextBox" & i) = _
.Offset(0, i - 1)
Next
End With
End If

End Sub
''''''''''''''''''''''''''''''

'@+

'lSteph




LSteph a écrit :
Bonjour,
dans ce cas tu vas apprendre un peu de VBA et commencer à construire un
userform, exemple

Etape1
------
Nouveau Classeur
on met des titres de A à I en ligne 1
Civilité Nom Prénom Adresse1 Adresse2 Code Postal
Ville Tél Ref

Alt+F11 On y va (dans le VBE)

Etape2
------
Insertion userform 1 clic
F4 J'affiche la fenêtre des propriétés (si ce n'est pas déjà le cas )
dedans je cherche la propriété width et la mets à 270 et height à 400
puis dans caption j'écris saisie

je fais un clic dans mon UserForm

Depuis la Boite outils Controles on ajoute deux commandbuttons en haut à
droite
puis à gauche de haut en bas 8 textbox le premiers à 5 points de la
grille les autres espacés de 3 au moins et au dessus de chacun 8
labels.

Je sélectionne tous mes textbox et labels et je règle left à 15 et width
à 100 puis pour textbox4 et textbox5 je met à width 220

Je supprime textbox1 et le remplace par une combobox
(Zone de liste déroulante)

Voilà je sais un peu manipuler des contrôles.

Doubleclic dans Userform1

Etape3
------

Dans le déroulant droit de la fenêtre de code de userform1 qui apparaît
je choisis initialize et mets le code qui suit dedans:

Private Sub UserForm_Initialize()

Dim i As Byte
For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With

End Sub

'j'execute ce code pour l'instant il ne fait pas grand chose
'à part cela
'mais il est l'heure d'aller dormir .. on clique sur la croix
'suite à la prochaine si cela t'intéresse

'lSteph

' http://cjoint.com/?dhbzdZUSIu





fréro a écrit :
bonsoir
oui mais dans les cases du formulaire mon problème c'est que je ne sais
pas introduire une voire des listes de choix exemple
titre:
monsieur,madame,ou mademoiselle etc...
fréro

"Jacky" a écrit dans le message de
news:
Bonsoir,

Elle existe cette grille
Données / formulaire
en ayant pris soin de faire des entêtes de ligne

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je
viens de me rendre compte que je me suis (comme d'habitude)mal exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui
remplirait directement un tableau Excel a chaque enregistrement d'un
adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro













Avatar
isabelle
bonjour fréro,

pour renommer tous les Label du userform au même nom que le tableau
tu pourrais ajouter ces lignes dans la macro UserForm_Initialize

Dim ctrl
Dim x
For Each ctrl In UserForm1.Controls
If ctrl.Name Like "Label" Then
x = x + 1
ctrl.Caption = Sheets("Feuil1").Cells(1, x)
End If
Next

isabelle

fréro a écrit :
bonsoir et merci pour votre travail
l'exemple correspond bien à ce que je veux faire
demain je vais suivre la procédure pour construire le formulaire
tantôt j'ai effectué la 1ère partie ....après un blocage suite à une
erreur de ma part (end writh - en trop) ça a fonctionner
encore merci,car je suis entrain de découvrir le VBA
ça prend la tête mais c'est très intéressant
bonne nuit
la fermeture va être plus tôt qu'hier
fréro
"LSteph" a écrit dans le message de
news:eZIrF%
Bonsoir,

(exemple tout fait est là http://cjoint.com/?dhvryrx7Oz
mais c'est mieux d'essayer de le réaliser)

...

Etape4
(on va animer tout cela)

Puisqu'on est de retour dans Excel
clic droit sur le petit onglet de Feuil1
Visualiser le Code
(afin d'afficher le Userform sur doubleclic dans la feuille on
pourrait coller ceci dans le module de Feuil1)

'''''
Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True
UserForm1.Show
End Sub
'''''

Ca marche
Mais on va devoir renvoyer des infos du Userform vers la feuille
pour savoir où
on va cibler si le doubleclic à lieu dans une cellule vide ou remplie
et selon le cas envisager soit l'ajout soit la modification d'un
enregistrement.
Pour garder la cible selon qu'on est dans l'appli la feuille ou userform
on va utiliser un Module standard et y insérer une variable (globale)*
ici nommée myC * déclarée Public
puis on va modifier un peu les codes , de la feuille et du userform
Afin de controler la présence des données avant de valider.
''''''''''''''''''''''

'dans module1

Option Explicit
Public myC As Range

'''''

'dans le code de Feuil1

Private Sub Worksheet_BeforeDoubleClick(ByVal _
Target As Range, Cancel As Boolean)
Cancel = True

If Len(Target) = 0 Then
Set myC = [a65536].End(xlUp)(2)
Else
If Target.Row = 1 Then
Set myC = Target.Offset(1, 0)
Else
Set myC = Target
End If
End If
UserForm1.Show
End Sub

'''''

'dans userform1

Option Explicit

Private Sub CommandButton1_Click()
'Validation
Dim i As Byte
For i = 2 To 7
If i <> 5 Then 'adresse2 facultative
With Me.Controls("Textbox" & i)
If Len(.Value) = 0 Then
.SetFocus: MsgBox "incomplet": Exit Sub
End If
End With
End If
Next
With myC
.Value = Me.ComboBox1
On Error Resume Next
For i = 2 To 8

.Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
Next
End With
Unload Me
End Sub

Private Sub CommandButton2_Click()
'Annulation
Unload Me
End Sub


Private Sub UserForm_Initialize()
Dim i As Byte

For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With
If myC <> "" Then
With myC
ComboBox1 = .Value
For i = 2 To 8
Me.Controls("TextBox" & i) = _
.Offset(0, i - 1)
Next
End With
End If

End Sub
''''''''''''''''''''''''''''''

'@+

'lSteph




LSteph a écrit :
Bonjour,
dans ce cas tu vas apprendre un peu de VBA et commencer à construire
un userform, exemple

Etape1
------
Nouveau Classeur
on met des titres de A à I en ligne 1
Civilité Nom Prénom Adresse1 Adresse2 Code Postal
Ville Tél Ref

Alt+F11 On y va (dans le VBE)

Etape2
------
Insertion userform 1 clic
F4 J'affiche la fenêtre des propriétés (si ce n'est pas déjà le cas )
dedans je cherche la propriété width et la mets à 270 et height à 400
puis dans caption j'écris saisie

je fais un clic dans mon UserForm

Depuis la Boite outils Controles on ajoute deux commandbuttons en
haut à droite
puis à gauche de haut en bas 8 textbox le premiers à 5 points de la
grille les autres espacés de 3 au moins et au dessus de chacun 8
labels.

Je sélectionne tous mes textbox et labels et je règle left à 15 et
width à 100 puis pour textbox4 et textbox5 je met à width 220

Je supprime textbox1 et le remplace par une combobox
(Zone de liste déroulante)

Voilà je sais un peu manipuler des contrôles.

Doubleclic dans Userform1

Etape3
------

Dans le déroulant droit de la fenêtre de code de userform1 qui apparaît
je choisis initialize et mets le code qui suit dedans:

Private Sub UserForm_Initialize()

Dim i As Byte
For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next
CommandButton1.Caption = "Valider"
CommandButton2.Caption = "Fermer"
With ComboBox1
.AddItem "Monsieur"
.AddItem "Madame"
.AddItem "Mademoiselle"
End With

End Sub

'j'execute ce code pour l'instant il ne fait pas grand chose
'à part cela
'mais il est l'heure d'aller dormir .. on clique sur la croix
'suite à la prochaine si cela t'intéresse

'lSteph

' http://cjoint.com/?dhbzdZUSIu





fréro a écrit :
bonsoir
oui mais dans les cases du formulaire mon problème c'est que je ne
sais pas introduire une voire des listes de choix exemple
titre:
monsieur,madame,ou mademoiselle etc...
fréro

"Jacky" a écrit dans le message de
news:
Bonsoir,

Elle existe cette grille
Données / formulaire
en ayant pris soin de faire des entêtes de ligne

--
Salutations
JJ


"fréro" a écrit dans le message de news:

bonjour à tous
depuis plusieurs jours je vous sollicite pour un formulaire or,je
viens de me rendre compte que je me suis (comme d'habitude)mal
exprimé
en effet ce que je cherche a faire c'est une grille de saisie qui
remplirait directement un tableau Excel a chaque enregistrement
d'un adhérent.
Encore merci à tous ceux qui m'ont aidés
fréro
















Avatar
gmlsteph
Bonjour Isabelle,

;-) Oui si tu préfères l'autre méthode Ca le fait aussi mais elle
traitera également d'autres labels
qu'on voudrait par suite ajouter et pas forcément pour des intitulés
de champ et attention dans ce cas il faudrait enlever le code suivant
For i = 1 To 8
Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
Next




C'est ainsi que j'avais opté pour traiter les n premiers
correspondant au nombre de titres implantés et comptés (à adapter)
Ces labels étant déjà au bon endroit, sinon mais voila qui obligerai t
à gérer aussi cette implantation, on pourrait également
utiliser add en fonction de iv1.end(xltoleft).column

biz

@+

Stéphane

On 6 mar, 00:38, isabelle wrote:
bonjour fréro,

pour renommer tous les Label du userform au même nom que le tableau
tu pourrais ajouter ces lignes dans la macro UserForm_Initialize

Dim ctrl
Dim x
For Each ctrl In UserForm1.Controls
  If ctrl.Name Like "Label" Then
    x = x + 1
    ctrl.Caption = Sheets("Feuil1").Cells(1, x)
  End If
Next

isabelle

fréro a écrit :



> bonsoir et merci pour votre travail
> l'exemple correspond bien à ce que je veux faire
> demain je vais suivre la procédure pour construire le formulaire
> tantôt j'ai effectué la 1ère partie ....après un blocage suite à une
> erreur de ma part (end writh - en trop) ça a fonctionner
> encore merci,car je suis entrain de découvrir le VBA
> ça prend la tête mais c'est très intéressant
> bonne nuit
> la fermeture va être plus tôt qu'hier
> fréro
> "LSteph" a écrit dans le message de
>news:eZIrF%
>> Bonsoir,

>> (exemple tout fait est là  http://cjoint.com/?dhvryrx7Oz
>> mais c'est mieux d'essayer de le réaliser)

>> ...

>> Etape4
>> (on va animer tout cela)

>> Puisqu'on est de retour dans Excel
>> clic droit sur le petit onglet de Feuil1
>> Visualiser le Code
>> (afin d'afficher le Userform sur doubleclic dans la feuille on
>> pourrait coller ceci dans le module de Feuil1)

>> '''''
>> Private Sub Worksheet_BeforeDoubleClick(ByVal _
>> Target As Range, Cancel As Boolean)
>> Cancel = True
>> UserForm1.Show
>> End Sub
>> '''''

>> Ca marche
>> Mais on va devoir renvoyer des infos du Userform vers la feuille
>> pour savoir où
>> on va cibler si le doubleclic à lieu dans une cellule vide ou rempli e
>> et selon le cas envisager soit l'ajout soit la modification d'un
>> enregistrement.
>> Pour garder la cible selon qu'on est dans l'appli la feuille ou userfo rm
>> on va utiliser un Module standard et y insérer une variable (globale )*
>> ici nommée myC * déclarée Public
>> puis on va modifier un peu les codes , de la feuille et du userform
>> Afin de controler la présence des données avant de valider.
>> ''''''''''''''''''''''

>> 'dans module1

>> Option Explicit
>> Public myC As Range

>> '''''

>> 'dans le code de Feuil1

>> Private Sub Worksheet_BeforeDoubleClick(ByVal _
>> Target As Range, Cancel As Boolean)
>> Cancel = True

>> If Len(Target) = 0 Then
>> Set myC = [a65536].End(xlUp)(2)
>> Else
>>     If Target.Row = 1 Then
>>     Set myC = Target.Offset(1, 0)
>>     Else
>>     Set myC = Target
>>     End If
>> End If
>> UserForm1.Show
>> End Sub

>> '''''

>> 'dans userform1

>> Option Explicit

>> Private Sub CommandButton1_Click()
>> 'Validation
>> Dim i As Byte
>> For i = 2 To 7
>> If i <> 5 Then 'adresse2 facultative
>>     With Me.Controls("Textbox" & i)
>>         If Len(.Value) = 0 Then
>>         .SetFocus: MsgBox "incomplet": Exit Sub
>>         End If
>>     End With
>> End If
>> Next
>> With myC
>> .Value = Me.ComboBox1
>>  On Error Resume Next
>>     For i = 2 To 8

>>  .Offset(0, i - 1).Value = Me.Controls("TextBox" & i).Value
>>     Next
>> End With
>> Unload Me
>> End Sub

>> Private Sub CommandButton2_Click()
>> 'Annulation
>> Unload Me
>> End Sub

>> Private Sub UserForm_Initialize()
>> Dim i As Byte

>> For i = 1 To 8
>> Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
>> Next
>> CommandButton1.Caption = "Valider"
>> CommandButton2.Caption = "Fermer"
>>     With ComboBox1
>>     .AddItem "Monsieur"
>>     .AddItem "Madame"
>>     .AddItem "Mademoiselle"
>>     End With
>> If myC <> "" Then
>>     With myC
>>     ComboBox1 = .Value
>>         For i = 2 To 8
>>         Me.Controls("TextBox" & i) = _
>>         .Offset(0, i - 1)
>>         Next
>>     End With
>> End If

>> End Sub
>> ''''''''''''''''''''''''''''''

>> '@+

>> 'lSteph

>> LSteph a écrit :
>>> Bonjour,
>>> dans ce cas tu vas apprendre un peu de VBA et commencer à construir e
>>> un userform, exemple

>>> Etape1
>>> ------
>>> Nouveau Classeur
>>> on met des titres de A à I en ligne 1
>>> Civilité    Nom     Prénom    Adresse1    Adresse 2    Code Postal
>>> Ville    Tél    Ref

>>> Alt+F11 On y va (dans le VBE)

>>> Etape2
>>> ------
>>> Insertion userform 1 clic
>>> F4 J'affiche la fenêtre des propriétés (si ce n'est pas déj à le cas )
>>> dedans je cherche la propriété  width  et la mets à 270 et height à 400
>>> puis dans caption j'écris  saisie

>>> je fais un clic dans mon UserForm

>>> Depuis la Boite outils Controles on ajoute deux commandbuttons en
>>> haut à droite
>>> puis à gauche de haut en bas 8 textbox  le premiers à 5 points de la
>>> grille les autres espacés de 3 au moins  et  au dessus de chacu n 8
>>> labels.

>>> Je sélectionne tous mes textbox et labels et je règle left à 15 et
>>> width à 100 puis pour textbox4 et textbox5 je met à width  220

>>> Je supprime textbox1 et le remplace par une combobox
>>> (Zone de liste déroulante)

>>> Voilà je sais un peu manipuler des contrôles.

>>> Doubleclic dans Userform1

>>> Etape3
>>> ------

>>> Dans le déroulant droit de la fenêtre de code de userform1 qui ap paraît
>>> je choisis initialize et mets le code qui suit dedans:

>>> Private Sub UserForm_Initialize()

>>> Dim i As Byte
>>> For i = 1 To 8
>>> Me.Controls("Label" & i) = Feuil1.Rows(1).Cells(i)
>>> Next
>>> CommandButton1.Caption = "Valider"
>>> CommandButton2.Caption = "Fermer"
>>> With ComboBox1
>>> .AddItem "Monsieur"
>>> .AddItem "Madame"
>>> .AddItem "Mademoiselle"
>>> End With

>>> End Sub

>>> 'j'execute ce code pour l'instant il ne fait pas grand chose
>>> 'à part cela
>>> 'mais il est l'heure d'aller dormir .. on clique sur la croix
>>> 'suite à la prochaine si cela t'intéresse

>>> 'lSteph

>>> 'http://cjoint.com/?dhbzdZUSIu

>>> fréro a écrit :
>>>> bonsoir
>>>> oui mais dans les cases du formulaire mon problème c'est que je ne
>>>> sais pas introduire une voire des listes de choix exemple
>>>> titre:
>>>> monsieur,madame,ou mademoiselle etc...
>>>> fréro

>>>> "Jacky" a écrit dans le message de
>>>>news:
>>>>> Bonsoir,

>>>>> Elle existe cette grille
>>>>> Données /  formulaire
>>>>> en ayant pris soin de faire des entêtes de ligne

>>>>> --
>>>>> Salutations
>>>>> JJ

>>>>> "fréro" a écrit dans le message de news:
>>>>>
>>>>>> bonjour à tous
>>>>>> depuis plusieurs jours je vous sollicite pour un formulaire or,je
>>>>>> viens de me rendre compte que je me suis (comme d'habitude)mal
>>>>>> exprimé
>>>>>> en effet ce que je cherche a faire c'est une grille de saisie qui
>>>>>> remplirait directement un tableau Excel a chaque enregistrement
>>>>>> d'un adhérent.
>>>>>> Encore merci à tous ceux qui m'ont aidés
>>>>>> fréro- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
gmlsteph
.. . je trouve cela bien quand on peut se mettre à plusieurs pour
donner différentes méthodes.
L'objectif est surtout pédagogique
... j'aurais pu aussi éviter les premières manipulations en tapant
directement par le code mais
tu l'avais compris mon but était que notre ami Frero puisse voir les
deux aspects:

-manipuler des objets et leurs propriétés via la fenêtre
-modifier ces propriétés par le code

@+

--
lSteph
1 2 3