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é :
Mon problème vient précisément de :
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
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