Sélection et cellules fusionnées

Unusual

XLDnaute Nouveau
Bonjour,

Je créé via OLE un document de sortie Excel à partir d'un modèle Excel dont certaines colonnes sont nommées, signifiant que celles-ci vont accueillir la valeur de champ d'une table.

Juste pour une meilleure compréhension du problème, voici le code Delphi utilisé :
Code:
        ColMin := aColonneDepartDetailDevis;
        ColMax := aColonneDepartDetailDevis;
        for CompteurColonne := Low(TabColonne) to High(TabColonne) do
        begin
             NomColonne := Words(EnteteDevis,';',CompteurColonne+1);
             // Recherche de la colonne de chaque champ
             try
                aXLApp.Goto(NomColonne);
                aXLApp.Selection.Copy;
                TabColonne[CompteurColonne] := aXLApp.Selection.Column;
                if ColMin > TabColonne[CompteurColonne] then
                   ColMin := TabColonne[CompteurColonne];
                if ColMax < TabColonne[CompteurColonne] then
                   ColMax := TabColonne[CompteurColonne];
             except
                   TabColonne[CompteurColonne] := -1;
             end;
        end;
        aColonneDepartDetailDevis := ColMin;

Mon problème vient précisément de :
Code:
aXLApp.Goto(NomColonne);
aXLApp.Selection.Copy;
TabColonne[CompteurColonne] := aXLApp.Selection.Column;

Je veux récupérer le numéro de colonne devant accueillir toutes les valeurs d'un champ donné. Tout se passe bien tant qu'il n'y a pas de cellules fusionnées dans la page, mais si par hasard il y a au moins une cellule fusionnée à cheval sur la colonne recherchée, je récupère la valeur minimum de colonne de la sélection.

Exemple :

Si la colonne 4 (D) est nommée 'toto' et qu'il existe une fusion de cellules sur la plage D3D4, la valeur qui m'est retournée par la portion de code ci-dessus est 3 (au lieu de 4)...

Comment puis-je solutionner ce problème ?

Message édité par: unusual, à: 13/06/2005 15:43
 

Gael

XLDnaute Barbatruc
Bonjour,

L'utilisation de cellules fusionnées posant souvent problème dans Excel, essaye d'utiliser plutot le centrage sur plusieurs colonnes:


Format / cellule / Alignement horizontal 'Centré sur plusieurs colonnes'

Décoche la case 'Fusionner les cellules'

Cela devrait régler le pb.


@+

Gael
 

Unusual

XLDnaute Nouveau
Oui, c'est ce qui est fait en ce moment, je stipule aux utilisateurs de ne pas utiliser de fusion de cellules....mais j'ai beau le répéter, le mettre en gras dans la documentation...j'ai sans cesse des retours par EMail me disant : 'Ca marche pas !' avec le modèle Excel en pièce jointe...et là, à chaque fois, ils ont remis des cellules fusionnées... :angry: ARGHH ! :angry: ....et je remplace inlassablement ces fusions par des alignements sur plusieurs colonnes :S ....avant de renvoyer après modification...et je perds mon temps quand ce n'est pas mon sang-froid !

Je voudrais m'affranchir de cette limite, c'est tout...et surtout pour ne plus être ennuyé par ces retours stupides. Je me dis que j'ai plus vite fait de changer mon code que les personnes derrière leur micro ;)

Il doit bien y avoir une façon de récupérer l'indice de la colonne nommée même si la sélection porte sur plusieurs colonnes à cause de ces fusions, non ?
 

Unusual

XLDnaute Nouveau
Re:Sélection et cellules fusionnées [RESOLU]

J'ai trouvé mon information en utilisant la propriété RefersTo sur le nom donné à chaque colonne, puis en analysant son contenu...pour ceux que cela intéresse, vous n'avez qu'à me le demander...je ne le mets pas ici, car c'est du code Delphi (pour l'analyse)...
 

Discussions similaires

Réponses
5
Affichages
399

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm