Fanny please

yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005 - 23 juin 2004 à 09:29
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 - 20 juil. 2004 à 17:54
Bonjour,

comme tu le sait g créé une fonction qui affiche dans un report des labels de facon à former des tableaux.Je me suis arrangés pour faire deux colonnes de tableaux étant donné la taille des text à l'intérieur des labels....mé voilà mon maître de stage veut que l'ensemble des choix apparaissent sur une seule page, et donc pouvoir avoir 3 colonnes dans les cas où ca déborderait. Pour ne pas vavoir à trop diminuer les labels g décidé d'utiliser le fait que les marges d'impression droites et gauches sont par défaut à 2,4cm
et de les mettres à 0.
du coup ca apparait nickel.....seult voilà je règle les marges de facon manuelle....

crois-tu qu'il soit possible de faire ce réglage automatiquement?? et si oui, sais-tu comment? :question)

Sinon, la fonction mid()dont tu m'avais parlé m'a servi:

Il m'a en effet demandé de créer la possibilité de faire une recherche intuitive: cad à partir d'un text saisi par l'utilisateur, afficher tous les noms des types comportant des sous-options commencant/comportant le text saisi par l'utilisateur.
et d'afficher en vis à vis des types, l'option, la sous-option et le code.......
Ben grace à mid(), ca marche nickel !

Alors si jamais tu as besoin d'un tel code, j'ai ca en placard....

8-)

yaf_yaf

18 réponses

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
23 juin 2004 à 09:46
Coucou Yaf_Yaf :) ,

il faut que tu utilises la propriété :
.PageSetup de ton document en faisant :
With tondocument.PageSetup
    .LeftMargin = Application.InchesToPoints(0)
    .RightMargin = Application.InchesToPoints(0)
    .TopMargin = Application.InchesToPoints(0)
    .BottomMargin = Application.InchesToPoints(0)
End With


J'ai mis "tondocument" car je ne sais plus comment on nomme un report sous Access :blush) , mais ça tu le sais toi, vu que tu t'amuses à créer des objets dessus ;)

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 10:52
ok merci,

Manifestement c un code prévu pour excel car sous access ca ne marche pas, car ces fonctions n'existe pas, cela dit, j'ai réussi à charger en référence les librairies de excel et je vois maintenant d'où viens le code que tu m'as donné...ce qui est bizarre c que avec les librairies excel de chargées, il ne trouve toujours pas les fonctions pagesetup etc....

si je parviens à lui faire comprendre au compilateur qu'il a de nouvelles librairies à sa disposition, ce sera bon......grrr
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
23 juin 2004 à 11:13
Je ne me souviens plus si c'est possible de créer une macro sous Access avec Outils-> Macro -> Nouvelle Macro, mais si c'est possible, appuies dessus et change la mise en page et stoppe l'enregistrement de la macro. Ainsi, tu verras ce qui correspond aux définitions de la mise en page.

Et quand tu tapes Report.
(enfin, le nom de document. )... quelle est la liste des propriétés qu'il te propose ?

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 11:46
bon y'a du mieux, pour accéder aux propriétées d'excel,par exemple: application il suffit que je tape excel.application

par contre à partir de mon report, je ne peux pas faire

report.excel.pagesetup.....c un gros problème

je vais voir l'idée de la macro.... :sad)
yaf_yaf
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
23 juin 2004 à 12:07
tien ça fait plaisir a voir une demoiselle qui sy connait en prog ;)
Mail:ASC.Warning@caramail.com
Website: http://www.hexorciser.fr.st/

Warning
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 12:54
Sinon , pour ce qui est de la liste des propriété qui me sont proposé pour mon report: il y'a pour la plus intéressante:application mais qui n'a rien à voir avec celle d' excel......
après report.application. g un tas de truc dont
RunCommand acCmdPageSetup qui me permet d'accéder à la page où l'on peut modifier manuellement les marges d'impressions......mé c pas ce que je veux.... :sad)

yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 13:00
Warning:warning...

sur ton site il manque un ascensseur à ta page vbreformer...il manque un bout dans le bas qu'est pas accessible.....
yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 13:03
rectification: c visible mé faut savoir qu'il faut cliquer sur le bas de la page pour faire défiler........
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
23 juin 2004 à 13:15
Et tu ne peux pas faire directement :
report.BottomMargin = ..
report.TopMargin = ...
report.LeftMargin = ...
report.RightMargin = ... :question)

C'est dur de trouver la réponse sans Access :(

PS pour Warning : oui oui je confirme, je suis une demoiselle et je programme :shy) .

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 13:42
ben en fait le problème c que topmargin etc n'existe pas avec access
mé je viens de voir une fonction:page() qui est accessible à partir de report et qui devrait pouvoir faire ca mé l'aide n'est pas très claire et ne fournit aucun exemple...... %-6
yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 14:02
Fanny, te casses plus la tête , j'ai trouvé un code source sur ce site qui fait tout le travail, par contre faut que je le comprenne car ca sert à rien de pomper du code comme ca......

sinon, j'ai une autre question qui n'a rien à voir,as-tu une idée sur la facon de créer un timer pour gérer des petites animations du genre faire défiler un text dans un label.
de telle sorte que l'anim aparaissent à l'écran et qu'on ai le temps de la voire.....g essayé un truc du genre en utilisant en guise de timer une boucle while et un entier que j'incrémente mé ca ne marche pas........
yaf_yaf 8-)
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
23 juin 2004 à 14:34
Pour faire défiler un texte dans un label tu peux utiliser ce code :

Dim chaine As String
chaine = "coucou, ça défile"

For i = 0 to Len(chaine)
Label.Caption = Right$(chaine, Len(chaine)-1) & Left$(chaine,1)
Application.Wait(Now + TimeValue("0:00:01"))
Next i

Mais le problème c'est que pendant que ça s'éxécute, tu ne peux rien faire d'autre :sad)

Donc je ne sais pas vraiment comment faire

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 14:50
8-)
yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
23 juin 2004 à 14:51
Voilà le source qui sert à modifier les marges:
Peut-être que tu comprenderas mieux que moi ct il marche...

je ne suis pas bien sûr de bien comprendre le fonctionnement de la fonction lset et de la propriété .prtmip

ni à quoi servent les déclaration de fonction au début:private declare fonction....

et au niveau des types ce que représente string*28.....28*la taille d'un type string?

Option Compare Database
Option Explicit

' *** Début du module Impression ***

Type ch_PRTMIP
    chRGB As String * 28
End Type
Type type_PRTMIP
    entMargeGauche As Long
    entMargeHaut As Long
    entMargeDroite As Long
    entMargeBas As Long
    
End Type

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Public Sub ModifierMarges(txtNom As String, lngHaut As Long, lngBas As Long, lngGauche As Long, lngDroite As Long)
' Modifier les marges d'un rapport avant de l'imprimer
' paramètres : 1- le nom du rapport en texte
' 2- la marge du haut en cm
' 3- la marge du bas en cm
' 4- la marge du gauche en cm
' 5- la marge du droite en cm
' exemple : ModifierMarges "Contacts", 1, 1, 1.5, 1.5
' DoCmd.OpenReport "Contacts", acViewPreview
Dim ChaînePrtMip As ch_PRTMIP
Dim PM As type_PRTMIP
Dim rpt As Report
DoCmd.OpenReport txtNom, acDesign ' Ouvre l'état en mode Création.
Set rpt = Reports(txtNom)
ChaînePrtMip.chRGB = rpt.PrtMip
LSet PM = ChaînePrtMip
PM.entMargeHaut = lngHaut * 567 ' Définit les marges.
PM.entMargeBas = lngBas * 567
PM.entMargeGauche = lngGauche * 567
PM.entMargeDroite = lngDroite * 567
LSet ChaînePrtMip = PM ' Met à jour la propriété.
rpt.PrtMip = ChaînePrtMip.chRGB
DoCmd.Save
End Sub



A l'origine, le source que g trouvé permettait aussi d'orienter la feuille d'impression en mode paysage...et de zoomer, mé à priori je n'en ai pas besoin.... 8-)
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
23 juin 2004 à 17:17
mais c pa ma fote ya quelque semaine mon site marchait très bien :( mais mon hebergeur s'est cru obliger de me mettre sa pub "powered by brinkster" ce que créé un decalage .... mouarf

fanny: enchanté ;)

Mail:ASC.Warning@caramail.com
Website: http://www.hexorciser.fr.st/

Warning
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
20 juil. 2004 à 11:27
Dim chaine As String
chaine = "coucou, ça défile"

For i = 0 to Len(chaine)
Label.Caption = Right$(chaine, Len(chaine)-1) & Left$(chaine,1)
Application.Wait(Now + TimeValue("0:00:01"))
DoEvents 'ça permet de faire ce qu'on veut pendant l'execution (ça bloque pas le programme)
Next i

Mail:ASC.Warning@caramail.com
Website: http://www.hexorciser.fr.st/

Warning
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
20 juil. 2004 à 15:45
pr ce qui est des timer j'ai fini par trouvé y'a 4 semaines, il suffit effectivement d'utiliser un doevents avt de faire une boucle while, ca réactualise l'affichage et donc le label s'affiche bien comme il faut avt que la boucle d'attente ne se lance....

mé merci pr la réponse qd même, même si elle arrive un peu tard

yaf_yaf
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
20 juil. 2004 à 17:54
oué je suis retombé dessu par hazard en fait !

Mail:ASC.Warning@caramail.com
Website: http://www.hexorciser.fr.st/

Warning
0
Rejoignez-nous