OVH Cloud OVH Cloud

Accéder à des cellules d'une sélection par OLE (Delphi)

1 réponse
Avatar
Ludovic Laé
Bonjour,
je vous soumets mon problème.
Je sais qu'en vba, on peut accéder aux valeurs des cellules d'une
sélection unique par un code du style

For i = 0 To Selection.Count - 1
MsgBox Selection(i)
Next i

J'essaie de transposer cela par un pilotage OLE depuis Delphi (sans
succès). Pour note, OLE_Excel est un OLEVariant initialisé précédemment,
le pilotage fonctionne, un fichier est ouvert, etc.

procedure Test;
var
Une_Cell: variant;
i: integer;
begin
//Recherche de la plage de cellule active
for i := 0 to OLE_Excel.Selection.Count-1 do
begin
Une_Cell := OLE_Excel.Selection[i];
ShowMessage(Une_Cell.Value);
end;
end;

Le code suivant me retourne une erreur à la ligne "Une_Cell :=
OLE_Excel.Selection[i];" avec le message "Nombre de paramètres non valide".

Lors d'un passage en pas à pas, je vois que OLE_Excel.Selection.Count
contient, en revanche, le nombre exact de cellules que j'ai
sélectionnées dans le fichier actif d'OLE_Excel.

Avez vous une idée de la syntaxe à adopter pour récupérer effectivement
les valeurs de mes cellules sélectionnées ?

Par avance, merci.
L. Laé.

1 réponse

Avatar
Jacky
Bonsoir,

J'ignore depuis Delphi, mais en Vba la syntaxe serait:
For i = 1 To Selection.Count
'--------
L'erreur vient peut-être de là.
for i := 1 to OLE_Excel.Selection.Count do

--
Salutations
JJ

"Ludovic Laé" a écrit dans le message de news:

Bonjour,
je vous soumets mon problème.
Je sais qu'en vba, on peut accéder aux valeurs des cellules d'une
sélection unique par un code du style

For i = 0 To Selection.Count - 1
MsgBox Selection(i)
Next i

J'essaie de transposer cela par un pilotage OLE depuis Delphi (sans
succès). Pour note, OLE_Excel est un OLEVariant initialisé précédemment,
le pilotage fonctionne, un fichier est ouvert, etc.

procedure Test;
var
Une_Cell: variant;
i: integer;
begin
//Recherche de la plage de cellule active
for i := 0 to OLE_Excel.Selection.Count-1 do
begin
Une_Cell := OLE_Excel.Selection[i];
ShowMessage(Une_Cell.Value);
end;
end;

Le code suivant me retourne une erreur à la ligne "Une_Cell :=
OLE_Excel.Selection[i];" avec le message "Nombre de paramètres non
valide".

Lors d'un passage en pas à pas, je vois que OLE_Excel.Selection.Count
contient, en revanche, le nombre exact de cellules que j'ai sélectionnées
dans le fichier actif d'OLE_Excel.

Avez vous une idée de la syntaxe à adopter pour récupérer effectivement
les valeurs de mes cellules sélectionnées ?

Par avance, merci.
L. Laé.