PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Remplir uen cellule Excel par son nom
Remplir uen cellule Excel par son nom
Débuté par ablanc, 20 juil. 2023 11:56 - 6 réponses
Posté le 20 juillet 2023 - 11:56
Bonjour,

je dois remplir une grille Excel avec des valeurs calculées dans des procédures Windev.
La mise en page du document Excel peut changer et je souhaite pouvoir toujours écrire dans la bonne cellule.

Je pensais pouvoir donner un nom à une cellule dans le fichier Excel, ex : CALCUL001.
Ainsi si l'utilisateur final ajoute des lignes ou des colonnes, la cellule CALCUL001 pourrait toujours être bien remplie.

Essai 1 :
Je pensai pouvoir donner un nom à une cellule en ouvrant le fichier sous Excel.
Puis avec les procédures xlsXXX je pensai que l'on pourrait lire ou écrire dans une cellule nommée.
Ceci ne semble pas possible.

Essai 2 :
J'ai tenté de passer par le champ Tableur. Il y a en effet une fonction TableurListeNom .
J'ai donc ouvert mon fichier sous Excel et j'ai mis des noms dans les cellules.
Cependant la fonction TableurListeNom ne liste aucune de mes cellules.
On dirait que la fonction TableurListeNom ne fonctionne qu'avec les cellules qui auraient été nommées avec TableurAjouteNom ?

Y a t-il une solution ?

Je ne souhaite pas par exemple écrire dans la cellule un texte genre #CALCUL001# et m'amuser à parcourir toutes les cellules du fichier afin de faire un ChaineRemplace.
Cela serait vraiment archaïque...

Merci
Membre enregistré
1 034 messages
Posté le 20 juillet 2023 - 14:37
Bonjour,
si la solution par OLE peut vous convenir, il y a ce post :
récuperer les adresses de cellules nommées, via OLE

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev.old/5778-recuperer-adresses-cellules-nommees-via-ole/read.awp
Posté le 20 juillet 2023 - 17:15
Merci pour la réponse Cédric.
J'espérai qu'en 2023 on puisse faire autrement.
Si la solution permettait de ne pas avoir besoin d'Excel sur le poste cela serait l'idéal.
Membre enregistré
1 034 messages
Posté le 20 juillet 2023 - 19:56
Dans ce cas, je reviens sur l'essai 2 de la question :
Comment avez-vous, je cite "mis des noms dans les cellules " ?

Je n'ai qu'une ancienne version d'excel sous la main, mais si je fais (dans Excel) : menu "formule" -> Définir un nom puis je renseigne :
Nom : Total1
Zone : Classeur

dans Windev, j'ouvre le fichier excel dans le champs tableur (bouton 1), puis dans un deuxième bouton, j'exécute le code de la page "TableurListeNom (Fonction)" : https://doc.pcsoft.fr/fr-FR/?1000023448

Windev me retourne :
Nom : Total1; Cellule : Feuil1!$A$7; Portée : 0;Commentaire :

ça fonctionne donc dans mon cas.
Cdlt
Posté le 21 juillet 2023 - 11:13
Lorsque vous êtes dans Excel, si vous sélectionnez une cellule, à côté du champ de saisie d'une formule de calcul il y a un champ "Zone Nom". Il est possible d'y saisir un texte et en faisant Entrée, cela donne un nom à la cellule.

Par exemple, si vous allez dans la cellule en première ligne, première colonne, ce champ indique par défaut A1, si vous saisissez une chaine à la place de A1 (exemple CALCUL1) cela sera son nom.
Si vous insérez une ligne avant la première ligne, la cellule sera alors la A2 mais son nom restera CALCUL1.

Il est également possible d'utiliser le bouton "Ajouter un nom" dans le menu "Formules".

Pour le moment pour faire tourner notre fonction, nous mettons une chaine de texte dans la cellule à remplir dans le fichier Excel, exemple #CALCUL1#. On met le texte réellement dans la cellule, on n'utilise plus le nom de la cellule.
Ensuite dans la procédure Windev, on parcourt toutes les cellules (pour toute ligne/pour toute colonne) et si la chaine contenue correspond à #CALCULx# alors on affecte la valeur calculée dans cette cellule.
Ce n'est pas idéal (car parcourt de toutes les lignes/colonnes) mais cela fonctionne pour patienter.
Membre enregistré
1 034 messages
Posté le 21 juillet 2023 - 13:42
Bonjour Alain,
Désolé mais votre dernier post me laisse perplexe.
Dans mon post (4), je vous explique comment j'ai pratiqué mais effectivement, les méthodes que vous décrivez (Post 5) fonctionnent tout aussi bien pour nommer une cellule.

Le champs Tableur de Windev devrait donc vous retourner la position des cellules nommées si vous utilisez le code de "TableurListeNom (Fonction)" : https://doc.pcsoft.fr/fr-FR/?1000023448

Tout ce que j'ai eu à faire pour faire fonctionner ce code, c'est le remplacement du nom du champs tableur dans ce code à la ligne 2 : tabNom = TableurListeNom(TBLR_MonTableur)
J'obtiens donc dans windev la liste des cellules nommées (Nom : Total1) et leur position (Cellule : Feuil1!$A$7).

Je réitère donc en vous confirmant que ça fonctionne et que la méthode que vous décrivez au dernier paragraphe de votre message (#5) n'est pas nécessaire, je cite : "nous mettons une chaine de texte dans la cellule à remplir dans le fichier Excel, exemple #CALCUL1#".

Si ça ne fonctionne pas pour vous, c'est donc qu'il y a un bug quelque part.
Cdlt
Posté le 24 février 2026 - 22:53
Pour info, chez moi la fonction TableurListeNom ne fonctionne pas quand la feuille importée dans le champ tableur est nommée avec un accent. Problème constaté en versions 23 et 27, peut-être réparé depuis... En tout cas je me suis bien arraché les cheveux.