Soyez le premier à donner votre avis sur cette source.
Vue 7 085 fois - Téléchargée 1 009 fois
Private Sub AjusterLigne() Dim LeTexte As String Dim LaPhrase As String Dim Ligne As Integer Dim Colonne As Integer Dim LargeurColonne As Integer Dim HauteurLigne As Integer Dim NouvelleHauteur As Integer Dim z() As String Dim nbreLignes As Integer Dim i As Integer Dim h As Long LeTexte = Me.MSFlexGrid1.Text 'Le texte de la cellule Ligne = Me.MSFlexGrid1.Row 'La ligne en cours Colonne = Me.MSFlexGrid1.Col 'La colonne en cours LargeurColonne = Me.MSFlexGrid1.ColWidth(Colonne) 'La largeur de la colonne en cours HauteurLigne = Me.MSFlexGrid1.RowHeight(Ligne) 'La hauteur de la ligne en cours 'Si la cellule est vidé de son contenu If LeTexte = "" Then Me.MSFlexGrid1.RowHeight(Ligne) = Me.TextHeight("X") + 40: Exit Sub z = Split(LeTexte, Chr(10)) 'Découpe la chaine de la cellule en morceaux nbreLignes = UBound(z) If nbreLignes = 0 Then 'S'il n'y a pas de retour chariot... nbreLignes = 1 '...il n'y a qu'une ligne (vide ou non) Else nbreLignes = nbreLignes + 1 'Sachant que UBound donne l'index maximum et démarre à 0, End If 'La hauteur de la ligne est donc de... NouvelleHauteur = (Me.TextHeight("X") * nbreLignes) 'Passe en revue chacune des lignes afin de savoir si elles sont plus longues que la colonne For i = LBound(z) To UBound(z) 'Si tel est le cas, augmente la hauteur de la ligne... If Me.TextWidth(z(i)) > LargeurColonne Then h = Me.TextWidth(z(i)) / LargeurColonne NouvelleHauteur = NouvelleHauteur + Me.TextHeight(String(h - 1, Chr(10))) End If Next 'Dimensionne finalement la ligne If NouvelleHauteur > HauteurLigne Then Me.MSFlexGrid1.RowHeight(Ligne) = NouvelleHauteur + 40 End Sub
4 févr. 2003 à 17:32
C'est super comme prog, mais comme je necomprend pas grand chose a vb, je me demandais si ton code pouvais etre adapté avec un base access 2000 .
Genre j'ai une base que je peux modifier comme dans ton code
4 févr. 2003 à 11:48
Je disais donc que cette source peut s'avérer très utile, sachant que je rajouterai quand même un test dans la fonction AjusterLigne() afin que la ligne garde la hauteur de la cellule la plus haute car dans le cas présent, si l'on rempli une cellule vide, la hauteur s'adapte à cett dernière.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.