Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème d'ajustement de hauteur de ligne après un CopyFromRecordset

1 réponse
Avatar
Thierry Euzenot
Bonjour,

J'ai une procédure de ce type :

' Création d'un nouvel objet Recordset (jeu d'enregistrement)
Set Rst = New ADODB.Recordset
Rsql = "SELECT pbprod_datcre, pbprod_type, pbprod_desig FROM pbprod WHERE
pbprod_datcre >= " & DebutSemaine & " AND pbprod_datcre <= " & FinSemaine &
" ORDER BY pbprod_datcre, pbprod_type;"

Rst.Open Rsql, Conn, adOpenDynamic, adLockReadOnly, adCmdText

' Copie du jeu d'enregistrement vers la feuille de calcul
Feuil3.Range("A11").CopyFromRecordset Rst

' Fermeture du jeu d'enregistrements
Set Rst = Nothing

Le problème c'est que j'ai des données de différentes longueur (souvent
longues) et qui donc forcément ne rentrent pas dans les tailles de cellule
que j'ai défini comme base... j'aimerais pourtant que la hauteur de mes
lignes soient adaptées à la longueur du texte qui les composent.
Mais lorsque je double clique sur la barre de droite pour ajuster
automatiquement la hauteur de ligne, au lieu de l'agrandir, ça la réduit à
la taille de base (12.75 points)
(nota : l'option retour à la ligne automatique est activée)
J'ai même tenté de faire un Rows("11:23").EntireRow.AutoFit mais ça donne le
même résultat...

Du coup j'ai du user d'un subterfuge afin que mes lignes soient de la bonne
hauteur... mais c'est pas le top :
'Ajuste la hauteur des lignes
For LigneE = 11 To 23
LongueurTxt = Len(Feuil3.Range("C" & LigneE))
If LongueurTxt > 150 Then
NbLigne = Round(LongueurTxt / 75, 0) + 1
Feuil3.Rows(LigneE).RowHeight = NbLigne * 12.5
End If
Next LigneE

Si quelqu'un à une idée je suis preneur :o)

1 réponse

Avatar
Patrick
Bonjour,

Un jour j'ai rencontré aussi ce problème. La seule solution que j'ai trouvée
a été de repasser sur chaque ligne pour les ajuster, comme cela (c'est mon
exemple, à toi de l'adapter) :

For Cpt = 3 To DernLigne
.Rows(Cpt & ":" & Cpt).EntireRow.AutoFit
Next

Cordialement.

--
Patrick

"Thierry Euzenot" wrote in message
news:
Bonjour,

J'ai une procédure de ce type :

' Création d'un nouvel objet Recordset (jeu d'enregistrement)
Set Rst = New ADODB.Recordset
Rsql = "SELECT pbprod_datcre, pbprod_type, pbprod_desig FROM pbprod WHERE
pbprod_datcre >= " & DebutSemaine & " AND pbprod_datcre <= " & FinSemaine
&

" ORDER BY pbprod_datcre, pbprod_type;"

Rst.Open Rsql, Conn, adOpenDynamic, adLockReadOnly, adCmdText

' Copie du jeu d'enregistrement vers la feuille de calcul
Feuil3.Range("A11").CopyFromRecordset Rst

' Fermeture du jeu d'enregistrements
Set Rst = Nothing

Le problème c'est que j'ai des données de différentes longueur (souvent
longues) et qui donc forcément ne rentrent pas dans les tailles de cellule
que j'ai défini comme base... j'aimerais pourtant que la hauteur de mes
lignes soient adaptées à la longueur du texte qui les composent.
Mais lorsque je double clique sur la barre de droite pour ajuster
automatiquement la hauteur de ligne, au lieu de l'agrandir, ça la réduit à
la taille de base (12.75 points)
(nota : l'option retour à la ligne automatique est activée)
J'ai même tenté de faire un Rows("11:23").EntireRow.AutoFit mais ça donne
le

même résultat...

Du coup j'ai du user d'un subterfuge afin que mes lignes soient de la
bonne

hauteur... mais c'est pas le top :
'Ajuste la hauteur des lignes
For LigneE = 11 To 23
LongueurTxt = Len(Feuil3.Range("C" & LigneE))
If LongueurTxt > 150 Then
NbLigne = Round(LongueurTxt / 75, 0) + 1
Feuil3.Rows(LigneE).RowHeight = NbLigne * 12.5
End If
Next LigneE

Si quelqu'un à une idée je suis preneur :o)