PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Modifier une cellule d'une table
Modifier une cellule d'une table
Débuté par Rastam, 25 mar. 2026 14:04 - 3 réponses
Posté le 25 mars 2026 - 14:04
Bonjour,
J'ai besoin de vos lumières.
J'ai une table basée sur un fichier de données.
Cette table a beaucoup de colonnes.
Les cellules ne peuvent contenir que des caractères : soit X, soit rien.
Lorsque je double-clique sur une cellule :
si la cellule est vide, alors je mets X dans la cellule, mais si la cellule contient déjà X, alors je ne mets rien dans la cellule.
Mais cela ne fonctionne pas.
Voici le code que j'écrit dans l'évènement "Double clic" sur une colonne.

wInd est un entier
wInd = IndiceEnCours()
wVal est un caractère = (COL_01[wInd])

SI wVal = "X" ALORS
Trace(wVal + " ==> Vide")
COL_01[wInd]..Valeur = ""
TABLE_PLANNING[wInd].COL_01..Valeur = ""
SINON
Trace(wVal + " ==> X")
COL_01[wInd]..Valeur = "X"
TABLE_PLANNING[wInd].COL_01..Valeur = "X"
FIN
Par avance, un Grand merci
Rastam
Membre enregistré
1 041 messages
Posté le 25 mars 2026 - 17:32
Bonjour,
plusieurs choses à dire :

Qu'est ce qui ne fonctionne pas ?

ces 2 lignes ont la même fonction:
COL_01[wInd]..Valeur = ""
TABLE_PLANNING[wInd].COL_01..Valeur = ""

un Vide n'est pas un caractère donc :
wVal est un caractère = (COL_01[wInd])
à remplacer par :
wVal est une Chaîne = (COL_01[wInd])

Cdlt
Membre enregistré
27 messages
Posté le 25 mars 2026 - 17:35
Bonjour.
Essayer plutôt la selection de la ligne avec Tableselect(NomTable).
wInd est un entier
wInd = TableSelect(MaTable)
SI wind <>-1 ALORS
wVal est un caractère = (COL_01[wInd])
SINON
Info ("Vous n'avez pas sélectionne de lifgne de table")
RETOUR
FIN
Membre enregistré
4 357 messages
Posté le 25 mars 2026 - 17:51
Bonjour,
Pourquoi ne pas utiliser un booléen, les cases à cocher sont gérées automatiquement. Par ailleurs on n'aura pas à gérer le problème des "x" et des "X".

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM