|
Home → WINDEV 2024 → Champ tableur - largeur automatique des colonnes du contenu des cellules |
Champ tableur - largeur automatique des colonnes du contenu des cellules |
Started by Jean-Christophe, Dec., 02 2021 1:04 PM - 5 replies |
| |
| | | |
|
| |
Posted on December, 02 2021 - 1:04 PM |
Bonjour à tous,
Dans le champ tableur si on positionne la souris entre deux entêtes de colonne et qu'on double-clique, la largeur de la colonne (à gauche du point cliqué) adapte automatiquement sa largeur en fonction du contenu de ses cellules.
En revanche, je n'ai pas trouvé si on faire lancer la même action par programmation ?
Merci d'avance,
Jean-Christophe |
| |
| |
| | | |
|
| | |
| |
Registered member 3,890 messages Popularité : +227 (347 votes) |
|
Posted on December, 02 2021 - 3:22 PM |
Bonjour, A priori, pas directement style(TableurAjusteColonne). Toutefois, une solution de contournement consisisterait à 1 parcourir la colonne en question (e.g "B") pour rechercher le contenu le plus long 2 Récupérer la largeur en pixel de cette cellule via TexteLargeur(TBLR_MonTableur["B"],saContenuLePlusLong) 3-Affecter le résultat à la largeur de la colonne via la propriété Largeur
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 3,890 messages Popularité : +227 (347 votes) |
|
Posted on December, 02 2021 - 8:39 PM |
le code suivant fait le boulot :
tabSelection est tableau de chaîne saNomColonne est chaîne
tabSelection=TableurRécupèreSélection(TBLR_Test) SI tabSelection..Occurrence=0 ALORS RETOUR FIN
saNomColonne=TableurRécupèreColonne(tabSelection[1]) TableurAjusteColonne(TBLR_Test,saNomColonne)
FONCTION TableurRécupèreColonne(saNomCellule est chaîne) :chaîne nNoColonne est un entier saNomColonne est une chaîne
nNoColonne=xlsNomVersCoordonnées(saNomCellule,xlsNumColonne) saNomColonne=xlsCoordonnéesVersNom(nNoColonne,1)
RENVOYER Gauche(saNomColonne,Taille(saNomColonne)-1)
Procedure TableurAjusteColonne(chMonTableur est Champ, saNomColonne est chaîne) saNomCellule est une chaîne nTailleMax est entier nLargeurMax est entier nLigneEnCours est entier
POUR nLigneEnCours=1 _À_ chMonTableur..NombreLigne saNomCellule=ChaîneConstruit("%1%2",saNomColonne,nLigneEnCours) SI nTailleMax<Taille(chMonTableur[saNomCellule]) ALORS nTailleMax=Taille(chMonTableur[saNomCellule]) FIN FIN
nLargeurMax= TexteLargeur(TBLR_Test["A1"],Complete("",nTailleMax,"A")) TBLR_Test[saNomCellule]..Largeur= nLargeurMax
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 3,890 messages Popularité : +227 (347 votes) |
|
Posted on December, 02 2021 - 8:40 PM |
Au lieu de TBLR_Test[saNomCellule]..Largeur= nLargeurMax lire
chMonTableur[saNomCellule]..Largeur= nLargeurMax
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 948 messages Popularité : +30 (92 votes) |
|
Posted on December, 02 2021 - 10:43 PM |
//On est maintenant sur de la taille du nom de la cellule s^r |
| |
| |
| | | |
|
| | |
| |
Posted on December, 03 2021 - 11:35 PM |
Merci Voroltinquo ça marche nickel.
J'ai juste ajusté le choix de la cellule "A1" pour choisir une cellule de la colonne qui à le format le plus contraignant (taille de police en particulier). |
| |
| |
| | | |
|
| | | | |
| | |
|