Auto-extension d'un champs : appliquer la même hauteur à tous.

Le
Soya
Bonjour les pros,

Dans un état, j'ai un champs auto-extensible. Comment faire pour que,
lorsque ce champs "s'auto-extentionne", les autres champs sur la même ligne
fassent la même chose ? Histoire d'esthétique

Merci et bon lundi !

Soya
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Raymond [mvp]
Le #6279631
Bonjour.

Lorsqu'un contrôle s'agrandit, les contrôles situés en dessous se déplacent
vers le bas dans la page, sans effet sur les autres.
La seule solution pour que tous les autres controles situés sur la même
ligne suivant l'agrandissement, c'est de tous les placer dans un sous-état.
la section détail du sous-état prenant tout l'espace horizontal, c'est une
bonne simulation d'extension sans en être une.
ce n'est pas parfait comme solution.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Soya"
| Bonjour les pros,
|
| Dans un état, j'ai un champs auto-extensible. Comment faire pour que,
| lorsque ce champs "s'auto-extentionne", les autres champs sur la même
ligne
| fassent la même chose ? Histoire d'esthétique...
|
| Merci et bon lundi !
|
| Soya
Soya
Le #6279601
Bonjour Raymond,

Ha mince... Ça ne fait pas mon affaire. Je pensais qu'il existait peut-être
quelque part une formule code de type "Abracadabra" qui dirait à tous ces
contrôles indisciplinés de se soumettre au contrôle chef quand il
s'agrandit...

Bon ben tant pis. Je vais garder mon état moche avec ses lignes pas belles.

Merci tout de même ! :)


Bonjour.

Lorsqu'un contrôle s'agrandit, les contrôles situés en dessous se déplacent
vers le bas dans la page, sans effet sur les autres.
La seule solution pour que tous les autres controles situés sur la même
ligne suivant l'agrandissement, c'est de tous les placer dans un sous-état.
la section détail du sous-état prenant tout l'espace horizontal, c'est une
bonne simulation d'extension sans en être une.
ce n'est pas parfait comme solution.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Soya"
| Bonjour les pros,
|
| Dans un état, j'ai un champs auto-extensible. Comment faire pour que,
| lorsque ce champs "s'auto-extentionne", les autres champs sur la même
ligne
| fassent la même chose ? Histoire d'esthétique...
|
| Merci et bon lundi !
|
| Soya





MF
Le #6278341
Bonjour Soya et Raymond,

C'est vraiment triste de devoir garder un état moche avec des lignes pas
belles !...

J'ai ce problème aussi depuis un bon moment pour la mise en forme de devis
et factures notamment.
J'ai utilisé ta technique, Raymond, en plaçant des lignes verticales entre
les contrôles du sous-état. Ces lignes peuvent "grandir" en fonction de
l'extension, en utilisant une technique que j'ai trouvée dans
http://support.microsoft.com/default.aspx?scid=kb;fr;286247
Ca marche très bien.
Je peux vous envoyer l'exemple si vous voulez.

Mais j'ai encore un petit truc à améliorer (Saint Raymond, priez pour nous
!) :
Dans mon sous-état, j'ai par exemple les contrôles suivants :
Col 1 Col 2 Col 3 Col 4 Col 5
N° art. Désignation Quantité Prix unit. Prix total

Le contrôle "Désignation" doit être extensible, donc c'est lui le "chef".
Mais je voudrais, pour faire joli et compréhensible par le client que,
lorsqu'il s'étend sur plusieurs lignes, l'écriture des colonnes suivantes
s'aligne en bas, donc au niveau de la dernière ligne du contrôle
"Désignation".
(Dans un tableau Excel, c'est possible de formater les cellules comme cela)
Est-ce que je me fais bien comprendre ?

Qu'en pensez-vous? Quelqu'un a-t-il un tuyau ?

Merci pour vos lumières.

Maurice FAUX

"Soya"
Bonjour Raymond,

Ha mince... Ça ne fait pas mon affaire. Je pensais qu'il existait
peut-être
quelque part une formule code de type "Abracadabra" qui dirait à tous ces
contrôles indisciplinés de se soumettre au contrôle chef quand il
s'agrandit...

Bon ben tant pis. Je vais garder mon état moche avec ses lignes pas
belles.

Merci tout de même ! :)


Bonjour.

Lorsqu'un contrôle s'agrandit, les contrôles situés en dessous se
déplacent
vers le bas dans la page, sans effet sur les autres.
La seule solution pour que tous les autres controles situés sur la même
ligne suivant l'agrandissement, c'est de tous les placer dans un
sous-état.
la section détail du sous-état prenant tout l'espace horizontal, c'est
une
bonne simulation d'extension sans en être une.
ce n'est pas parfait comme solution.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Soya"
| Bonjour les pros,
|
| Dans un état, j'ai un champs auto-extensible. Comment faire pour que,
| lorsque ce champs "s'auto-extentionne", les autres champs sur la même
ligne
| fassent la même chose ? Histoire d'esthétique...
|
| Merci et bon lundi !
|
| Soya







Raymond [mvp]
Le #6278301
Bonsoir.

La seule solution qu'on a trouvé pour l'instant c'est de placer les lignes
dans un sous-formulaire mais ça pose d'énormes problèmes sur les calculs.
je n'ai pas fini de tester la version 2007, qui est nettement plus
"efficace" que ses précédentes, et si j'apercevais une lueur d'espoir j'en
ferais part ici même.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"MF" %
| Bonjour Soya et Raymond,
|
| C'est vraiment triste de devoir garder un état moche avec des lignes pas
| belles !...
|
| J'ai ce problème aussi depuis un bon moment pour la mise en forme de devis
| et factures notamment.
| J'ai utilisé ta technique, Raymond, en plaçant des lignes verticales entre
| les contrôles du sous-état. Ces lignes peuvent "grandir" en fonction de
| l'extension, en utilisant une technique que j'ai trouvée dans
| http://support.microsoft.com/default.aspx?scid=kb;fr;286247
| Ca marche très bien.
| Je peux vous envoyer l'exemple si vous voulez.
|
| Mais j'ai encore un petit truc à améliorer (Saint Raymond, priez pour nous
| !) :
| Dans mon sous-état, j'ai par exemple les contrôles suivants :
| Col 1 Col 2 Col 3 Col 4 Col 5
| N° art. Désignation Quantité Prix unit. Prix total
|
| Le contrôle "Désignation" doit être extensible, donc c'est lui le "chef".
| Mais je voudrais, pour faire joli et compréhensible par le client que,
| lorsqu'il s'étend sur plusieurs lignes, l'écriture des colonnes suivantes
| s'aligne en bas, donc au niveau de la dernière ligne du contrôle
| "Désignation".
| (Dans un tableau Excel, c'est possible de formater les cellules comme
cela)
| Est-ce que je me fais bien comprendre ?
|
| Qu'en pensez-vous? Quelqu'un a-t-il un tuyau ?
|
| Merci pour vos lumières.
|
| Maurice FAUX
|
| "Soya" |
| > Bonjour Raymond,
| >
| > Ha mince... Ça ne fait pas mon affaire. Je pensais qu'il existait
| > peut-être
| > quelque part une formule code de type "Abracadabra" qui dirait à tous
ces
| > contrôles indisciplinés de se soumettre au contrôle chef quand il
| > s'agrandit...
| >
| > Bon ben tant pis. Je vais garder mon état moche avec ses lignes pas
| > belles.
| >
| > Merci tout de même ! :)
| >
| >
| >> Bonjour.
| >>
| >> Lorsqu'un contrôle s'agrandit, les contrôles situés en dessous se
| >> déplacent
| >> vers le bas dans la page, sans effet sur les autres.
| >> La seule solution pour que tous les autres controles situés sur la même
| >> ligne suivant l'agrandissement, c'est de tous les placer dans un
| >> sous-état.
| >> la section détail du sous-état prenant tout l'espace horizontal, c'est
| >> une
| >> bonne simulation d'extension sans en être une.
| >> ce n'est pas parfait comme solution.
| >>
| >> --
| >> @+
| >> Raymond Access MVP http://OfficeSystem.Access.free.fr/
| >> Pour débuter sur le forum: http://www.mpfa.info/
| >>
| >> Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
| >>
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273
| >>
| >>
| >> "Soya" news:
| >>
| >> | Bonjour les pros,
| >> |
| >> | Dans un état, j'ai un champs auto-extensible. Comment faire pour que,
| >> | lorsque ce champs "s'auto-extentionne", les autres champs sur la même
| >> ligne
| >> | fassent la même chose ? Histoire d'esthétique...
| >> |
| >> | Merci et bon lundi !
| >> |
| >> | Soya
| >>
| >>
| >>
|
|
Raymond [mvp]
Le #6278251
.../...

j'ajoute pour ceux qui ne sauraient pas de quoi on parle, que ce soi-disant
"problème" ne concerne que les états à disposition verticale ou justifiée et
ne concerne pas les états tabulaires qui représentent la grosse majorité des
états.
Apparemment la version 2007 traite les états de la même façon que 2003.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Raymond [mvp]" de news:
| Bonsoir.
|
| La seule solution qu'on a trouvé pour l'instant c'est de placer les lignes
| dans un sous-formulaire mais ça pose d'énormes problèmes sur les calculs.
| je n'ai pas fini de tester la version 2007, qui est nettement plus
| "efficace" que ses précédentes, et si j'apercevais une lueur d'espoir j'en
| ferais part ici même.
Momo
Le #6278191
Bonsoir,
et merci à toi Raymond, pour ta disponibilité et ta compétence

Maurice FAUX

"Raymond [mvp]" de news:
.../...

j'ajoute pour ceux qui ne sauraient pas de quoi on parle, que ce
soi-disant
"problème" ne concerne que les états à disposition verticale ou justifiée
et
ne concerne pas les états tabulaires qui représentent la grosse majorité
des
états.
Apparemment la version 2007 traite les états de la même façon que 2003.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Raymond [mvp]" message
de news:
| Bonsoir.
|
| La seule solution qu'on a trouvé pour l'instant c'est de placer les
lignes
| dans un sous-formulaire mais ça pose d'énormes problèmes sur les
calculs.
| je n'ai pas fini de tester la version 2007, qui est nettement plus
| "efficace" que ses précédentes, et si j'apercevais une lueur d'espoir
j'en
| ferais part ici même.




Gilles MOUGNOZ
Le #6278031
Bonjour à tous,
J'ai récemment expérimenté une solution qui consiste à créer les bordures "à
la main".
Sur l'événement Print des différentes sections, il est possible de récupérer
la hauteur finale d'un contrôle auto-extensible et ainsi de créer les lignes
aux dimensions souhaitées avec l'instruction Me.Line (voir l'aide pour plus
de détails).
Cela donne quelque chose comme ça:

Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
Dim vnTypeGauche As Long
Dim vnCommentaireHauteur As Long
Dim vnCommentaireDroite As Long
Dim cnChamps As Long
Me.ForeColor = RGB(0, 0, 0) ' Couleur noir
vnTypeGauche = Me.Controls("TYPE_DESIGNATION").Left
With Me.Controls("COMMENTAIRE") ' champ auto-extensible
vnCommentaireHauteur = .Top + .Height ' hauteur totale du sommet de
la section au bas du contrôle commentaire
vnCommentaireDroite = .Left + .Width ' largeur totale de la gauche
de la section à la droite du contrôle commentaire
End With
Me.DrawWidth = 10 ' Epaisseur de ligne grasse
Me.Line (0, 0)-(0, vnCommentaireHauteur) ' Ligne verticale grasse de
gauche
Me.Line (vnCommentaireDroite, 0)-(vnCommentaireDroite,
vnCommentaireHauteur) ' Ligne verticale grasse de droite
Me.DrawWidth = 1 ' Epaisseur de ligne normale
Me.Line (vnTypeGauche, 0)-(vnTypeGauche, vnCommentaireHauteur) ' Ligne
verticale normale à gauche du type
End Sub

J'espère avoir fait avancer le schmilblick (en étant bien conscient que
c'est du bricolage!).
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bonsoir,
et merci à toi Raymond, pour ta disponibilité et ta compétence
Maurice FAUX
.../...
j'ajoute pour ceux qui ne sauraient pas de quoi on parle, que ce
soi-disant
"problème" ne concerne que les états à disposition verticale ou justifiée
et
ne concerne pas les états tabulaires qui représentent la grosse majorité
des
états.
Apparemment la version 2007 traite les états de la même façon que 2003.
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/
Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273
| Bonsoir.
| La seule solution qu'on a trouvé pour l'instant c'est de placer les
lignes
| dans un sous-formulaire mais ça pose d'énormes problèmes sur les
calculs.
| je n'ai pas fini de tester la version 2007, qui est nettement plus
| "efficace" que ses précédentes, et si j'apercevais une lueur d'espoir
j'en
| ferais part ici même.




Raymond [mvp]
Le #6277501
Bonsoir Gilles .

le problème restant entier pour les contrôles à alignement libre de la
section détail.
je crois qu'on demande toujours trop et souvent qu'on ne cherche pas une
solution simple dans les états, la majorité des états étant des simples
clones d'états manuels . enfin !

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Le multimédia vu par Windows Vista, Office 2007 et Windows Live !!!
http://www.comscamp.com/Tracker/Redirect.ashx?linkid°64304e-439a-45c7-9d2f-c3326db58273


"Gilles MOUGNOZ" news:
| Bonjour à tous,
| J'ai récemment expérimenté une solution qui consiste à créer les bordures

| la main".
| Sur l'événement Print des différentes sections, il est possible de
récupérer
| la hauteur finale d'un contrôle auto-extensible et ainsi de créer les
lignes
| aux dimensions souhaitées avec l'instruction Me.Line (voir l'aide pour
plus
| de détails).
| Cela donne quelque chose comme ça:
|
| Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)
| Dim vnTypeGauche As Long
| Dim vnCommentaireHauteur As Long
| Dim vnCommentaireDroite As Long
| Dim cnChamps As Long
| Me.ForeColor = RGB(0, 0, 0) ' Couleur noir
| vnTypeGauche = Me.Controls("TYPE_DESIGNATION").Left
| With Me.Controls("COMMENTAIRE") ' champ auto-extensible
| vnCommentaireHauteur = .Top + .Height ' hauteur totale du sommet de
| la section au bas du contrôle commentaire
| vnCommentaireDroite = .Left + .Width ' largeur totale de la gauche
| de la section à la droite du contrôle commentaire
| End With
| Me.DrawWidth = 10 ' Epaisseur de ligne grasse
| Me.Line (0, 0)-(0, vnCommentaireHauteur) ' Ligne verticale grasse de
| gauche
| Me.Line (vnCommentaireDroite, 0)-(vnCommentaireDroite,
| vnCommentaireHauteur) ' Ligne verticale grasse de droite
| Me.DrawWidth = 1 ' Epaisseur de ligne normale
| Me.Line (vnTypeGauche, 0)-(vnTypeGauche, vnCommentaireHauteur) ' Ligne
| verticale normale à gauche du type
| End Sub
|
| J'espère avoir fait avancer le schmilblick (en étant bien conscient que
| c'est du bricolage!).
| --
| Bonne continuation
Gloops
Le #6292391
MF a écrit, le 30/05/2007 18:23 :
Dans mon sous-état, j'ai par exemple les contrôles suivants :
Col 1 Col 2 Col 3 Col 4 Col 5
N° art. Désignation Quantité Prix unit. Prix to tal

Le contrôle "Désignation" doit être extensible, donc c'est lui le "chef".
Mais je voudrais, pour faire joli et compréhensible par le client que ,
lorsqu'il s'étend sur plusieurs lignes, l'écriture des colonnes sui vantes
s'aligne en bas, donc au niveau de la dernière ligne du contrôle
"Désignation".


Bonjour,

Si on est prêt à se lancer dans une usine à gaz de bricolage, une
solution pourrait être de commencer par écrire une fonction qui soit
capable, à partir d'un texte, de déterminer sur combien de lignes il va
s'écrire dans une colonne.

A partir de là, connaissant le nombre de lignes du chef, dans chaque
colonne on évalue le nombre de lignes à écrire, et avant d'envoyer la
sauce on la fait précéder du nombre voulu de retours curseur (chr$(13 )).

Mais alors le principe, c'est bien gentil, mais pour le mettre en
pratique, on risque de s'amuser.

La semaine dernière (ou celle d'avant ?) il y a eu ici (ou alors dans l e
groupe vb ?) un fil pour évaluer la largeur d'un texte pour le centrer.
ça peut peut-être donner des éléments pour évaluer le texte é crit sur
chaque ligne, et en déduire le nombre de lignes.


Je commence à comprendre comment on trouve de la matière à sortir u ne
nouvelle version d'Access chaque année :)

MF
Le #6292241
Salut, et merci à tous de vos idées

En fait, Access calcule la hauteur du contrôle extensible dans l'événement
"Print" du détail de l'état.
J'y ai inséré la procédure suivante pour récupérer cette valeur:

Private Sub Détail_Print(Cancel As Integer, PrintCount As Integer)

Dim t1 As Long, t2 As Long, H1 As Long, H2 As Long
H1 = Me.Controls("Designation").Height
H2 = Me.Controls("QU").Height
t1 = Me.Controls("Designation").Top
t2 = Me.Controls("QU").Top

'Ici on peut connaitre la hauteur du contrôle "Designation" après son
extension :

MsgBox "Formatcount : " & FormatCount & vbCrLf & _
"Designation : TOP : " & t1 & " HEIGHT : " & H1 & vbCrLf & _
"QU : TOP : " & t2 & " HEIGHT : " & H2 & vbCrLf & _
" Section Détail : " & Me.Section(0).Height

'Alors, on peut calculer la position verticale voulue pour les autres
contrôles :

t2 = t1 + H1 - H2

'Jusque là tout va bien.
'Mais maintenant qu'on a la valeur voulue t2, comment peut-on re-formater
'pour forcer l'exécution de quelque chose du genre :
' Me.Controls("QU").Top = t2
'
'En fait je ne vois pas très bien où cette instruction pourrait être lancée,
ou comment
'forcer un nouveau formatage ?

End Sub

Est-ce que cette idée vous semble intéressante ?

Merci et bonne journée

MF


"Gloops" %
MF a écrit, le 30/05/2007 18:23 :
Dans mon sous-état, j'ai par exemple les contrôles suivants :
Col 1 Col 2 Col 3 Col 4 Col 5
N° art. Désignation Quantité Prix unit. Prix total

Le contrôle "Désignation" doit être extensible, donc c'est lui le "chef".
Mais je voudrais, pour faire joli et compréhensible par le client que,
lorsqu'il s'étend sur plusieurs lignes, l'écriture des colonnes suivantes
s'aligne en bas, donc au niveau de la dernière ligne du contrôle
"Désignation".


Bonjour,

Si on est prêt à se lancer dans une usine à gaz de bricolage, une
solution pourrait être de commencer par écrire une fonction qui soit
capable, à partir d'un texte, de déterminer sur combien de lignes il va
s'écrire dans une colonne.

A partir de là, connaissant le nombre de lignes du chef, dans chaque
colonne on évalue le nombre de lignes à écrire, et avant d'envoyer la
sauce on la fait précéder du nombre voulu de retours curseur (chr$(13)).

Mais alors le principe, c'est bien gentil, mais pour le mettre en
pratique, on risque de s'amuser.

La semaine dernière (ou celle d'avant ?) il y a eu ici (ou alors dans le
groupe vb ?) un fil pour évaluer la largeur d'un texte pour le centrer.
ça peut peut-être donner des éléments pour évaluer le texte écrit sur
chaque ligne, et en déduire le nombre de lignes.


Je commence à comprendre comment on trouve de la matière à sortir une
nouvelle version d'Access chaque année :)

Publicité
Poster une réponse
Anonyme