1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| Option Compare Database
Option Explicit
Public Function AjusterZdt(NomZdt As String) As Long
On Error GoTo GestionErreurs
Dim frm As Form
Dim ctlEtiquette As Control
'figer l'écran
Application.Echo False
'Créer un formulaire martyr
Set frm = CreateForm
'Créer une étiquette dans sa section Détail.
Set ctlEtiquette = CreateControl(frm.Name, acLabel)
With ctlEtiquette
.Name = "lblTexteCible"
.Caption = "Cette étiquette doit contenir" & vbCrLf & "un retour chariot "
.SizeToFit 'pour ajuster sa taille
.FontName = Forms(CodeContextObject.Name)(NomZdt).FontName
.FontSize = Forms(CodeContextObject.Name)(NomZdt).FontSize
.FontBold = Forms(CodeContextObject.Name)(NomZdt).FontBold
.FontItalic = Forms(CodeContextObject.Name)(NomZdt).FontItalic
.FontWeight = Forms(CodeContextObject.Name)(NomZdt).FontWeight
'On fixe la largeur et on copie le texte de la zdt dans l'étiquette
.Width = Forms(CodeContextObject.Name)(NomZdt).Width
.Caption = Forms(CodeContextObject.Name)(NomZdt)
.SizeToFit
'On récupère la hauteur
AjusterZdt = .Height
End With
'Supprimer le formumaire martyr
DoCmd.Close acForm, frm.Name, acSaveNo
'Rétablir l'écran
Application.Echo True
Exit Function
GestionErreurs:
Select Case Err.Number
Case 2176
MsgBox "Votre texte est trop long, il contient plus de 2040 caractères", vbCritical
AjusterZdt = 500
'Fermer le formulaire martyr
DoCmd.Close acForm, frm.Name, acSaveNo
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
End Function |
Partager