FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
Champ tableur - largeur automatique des colonnes du contenu des cellules
Champ tableur - largeur automatique des colonnes du contenu des cellules
Débuté par Jean-Christophe, 02 déc. 2021 13:04 - 5 réponses
Connectez-vous…
Jean-Christophe
#1
Posté le 02 décembre 2021 - 13:04
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
Signaler
0
0
Voroltinquo
#2
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 02 décembre 2021 - 15:22
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
Signaler
1
0
Voroltinquo
#3
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 02 décembre 2021 - 20:39
le code suivant fait le boulot :
tab
Selection
est tableau de chaîne
saNomColonne
est chaîne
tab
Selection
=
TableurRécupèreSélection
(
TBLR_
Test
)
SI
tab
Selection
..
Occurrence
=
0
ALORS
RETOUR
FIN
saNomColonne
=
TableurRécupèreColonne
(
tab
Selection
[
1
]
)
TableurAjusteColonne
(
TBLR_
Test
,
saNomColonne
)
// Remarques : Le nom de la cellule peut être ABC123, on ne peut pas déduire immédiatement le nom de la colonne
FONCTION
TableurRécupèreColonne
(
saNomCellule
est chaîne
) :
chaîne
n
NoColonne
est un entier
saNomColonne
est une chaîne
n
NoColonne
=
xlsNomVersCoordonnées
(
saNomCellule
,
xlsNumColonne
)
saNomColonne
=
xlsCoordonnéesVersNom
(
n
NoColonne
,
1
)
//On est maintenant sur de la taille du nom de la cellule
RENVOYER
Gauche
(
saNomColonne
,
Taille
(
saNomColonne
)
-
1
)
Procedure
TableurAjusteColonne
(
chMonTableur
est
C
hamp
,
saNomColonne
est chaîne
)
saNomCellule
est une chaîne
n
TailleMax
est entier
n
LargeurMax
est entier
n
LigneEnCours
est entier
//On cherche la colonne la plus large
POUR
n
LigneEnCours
=
1
_À_ chMonTableur
..
NombreLigne
saNomCellule
=
ChaîneConstruit
(
"%1%2"
,
saNomColonne
,
n
LigneEnCours
)
SI
n
TailleMax
<
Taille
(
chMonTableur
[
saNomCellule
]
)
ALORS
n
TailleMax
=
Taille
(
chMonTableur
[
saNomCellule
]
)
FIN
FIN
n
LargeurMax
=
TexteLargeur
(
TBLR_
Test
[
"A1"
]
,
Complete
(
""
,
n
TailleMax
,
"A"
)
)
//Une autre cellule que A1 aurait pu faire l'affaire
TBLR_
Test
[
saNomCellule
]
..
Largeur
=
n
LargeurMax
--
Il y a peut être plus simple, mais, ça tourne
Signaler
1
0
Voroltinquo
#4
Membre enregistré
3 845 messages
Popularité : +227 (347 votes)
Posté le 02 décembre 2021 - 20:40
Au lieu de
TBLR_
Test
[
saNomCellule
]
..
Largeur
=
n
LargeurMax
lire
chMonTableur
[
saNomCellule
]
..
Largeur
=
n
LargeurMax
--
Il y a peut être plus simple, mais, ça tourne
Signaler
1
0
Charly CANDO
#5
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 02 décembre 2021 - 22:43
//On est maintenant sur de la taille du nom de la cellule
s^r
Signaler
0
0
Jean-Christophe
#6
Posté le 03 décembre 2021 - 23:35
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).
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte