Et il faut le traduire en C++ . C'est ca que tu dit?
Et il faut le traduire en C++ . C'est ca que tu dit?
J'ai trouve ceci sur le site
Je l'ai condense en ceci
Reste a trouver le code pour connaitre l'adresse de la derniere colonne non vide et l'adresse de la derniere ligne non vide
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2 vWorksheet.OlePropertyGet("Range", "A1:AJ20000").OleProcedure("Sort", vWorksheet.OlePropertyGet("Columns", 1), 1);
Code de trie avec detection fin de ligne et fin de colonne
le code detaille
le code condense
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int depart = 2; int fin = vWorksheet.OlePropertyGet("Range", "A1").OlePropertyGet("SpecialCells", 11).OlePropertyGet("Row"); int finCol = vWorksheet.OlePropertyGet("Range", "A1").OlePropertyGet("SpecialCells", 11).OlePropertyGet("Column"); Variant vCol, vRange; vCol = vWorksheet.OlePropertyGet("Columns", 1); vRange = vWorksheet.OlePropertyGet("Range", vWorksheet.OlePropertyGet("Cells", depart, 1), vWorksheet.OlePropertyGet("Cells", fin, finCol)); vRange.OleProcedure("Sort", vCol, 1); // 1 xlAscending , 2 xlDescending
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 int depart = 2; int fin = vWorksheet.OlePropertyGet("Range", "A1").OlePropertyGet("SpecialCells", 11).OlePropertyGet("Row"); int finCol = vWorksheet.OlePropertyGet("Range", "A1").OlePropertyGet("SpecialCells", 11).OlePropertyGet("Column"); vWorksheet.OlePropertyGet("Range", vWorksheet.OlePropertyGet("Cells", depart, 1), vWorksheet.OlePropertyGet("Cells", fin, finCol)).OleProcedure("Sort", vWorksheet.OlePropertyGet("Columns", 1),1);
Merci . Parcontre tu te prends juste un peu trop la t�te au niveau des lignes et colones vides . Puisque a ce stade il ne reste que 3 colones . Qui normalement sont li�es entre elles . Donc tu trie la 3 normalement les autres suivent . Du moins sous Excel ca fait ca . Et le nombre de lignes utilis�es ont �t� r�cup�r�es d�s le d�but dans un int : lignes ... Voil�
![]()
Donc apr�s modification . Le code qui me correspond est :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 int start = 2; int fini = lignes; int finCol = vWorksheet.OlePropertyGet("Range", "C1").OlePropertyGet("SpecialCells", 11).OlePropertyGet("Column"); Variant vCol; vCol = vWorksheet.OlePropertyGet("Columns", 3); vRange = vWorksheet.OlePropertyGet("Range", vWorksheet.OlePropertyGet("Cells", start, 1), vWorksheet.OlePropertyGet("Cells", fini, finCol)); vRange.OleProcedure("Sort", vCol, 1); // 1 xlAscending , 2 xlDescending. Donc j'avance un peu le programme et bient�t j'aurais re-besoin de toi
![]()
Donc voil� ca y est . Tout est tri� comme il faut et je n'ai gard� que ce dont j'avais besoin. Maintenant je suis aux derni�res �tapes.
D'abord il faut que j'ins�re une colone entre la colone A et la colone B pour ensuite la supprimer.
(pour enlever le bug de la procha�ne etape qui met le reste du code dans la seconde colone ).
J'ai donc la colone A qui n'est constitu�e que de nombres au format :
"340092xxxxxxx"
3
4
J'ai donc besoin d'enlever les 5 premiers chiffres et le dernier .
"34009]2xxxxxx[x"
3
4
Pour ne garder que un nombre du format
2xxxxxx
3
4
. Voil� j'esp�re avoir �t� clairEt que tu sais comment faire . Disons qu'il y a la fonction Excel . Mais .. Encore une fois..
![]()
( juste un petit message pour remercier blondelle pour les informations sur les versions excels qui conservent la compatibilit� ascendante, ce que je ne savais pas.
D�sol� je n'ai pas eu le temps de r�pondre avant, ayant �t� tr�s pris ces derniers jours.
Les probl�mes de version que j'avais rencontr�s concernaient en fait une diff�rence de langue entre version fran�aises et anglaise de excel il y a des choses qui changent, au niveau des virgules et points, et �galement au niveau du nom des formules math�matiques, je ne sais pas s'ils ont r�solus ce probl�me sur les derni�res versions d'office. )
Oui je suis d'accord pour bien remercier blondelle..
Salut Argol_Medusa, on rencontre plus de probleme avec les versions de BCB que de probleme de version d'Excel, c'est comme cela, ou serait la joie de s'arracher les cheveux devant un code qui refuse de fonctionner
si je ne me trompe pas les mots de commandes sont tous en anglais depuis la version 2000
santanas2b, tu sais recuperer le contenu d'une cellule, regarde dans l'aide en ligne de BCB " LeftStr " et " RightStr " une des fonction supprime la partie gauche d'une chaine l'autre la partie droite
Ouai . heu .. x) A cause de la version de windows .. Je n'ai pas l'aide de BcB x)
J'ai recherch� vite fait sur google . Je vais tenter quelque choses. Donc on r�cup�re les valeurs de la case . Mais comment r�cup�rer la cha�ne de carrac?
Puisque Value . C'est un float . Donc . Il faudrait un argument de OleProperty pour r�cup�rer une cha�ne de carrac
il faut utiliser FloatToStr pour convertir un flottant en String, mais avant essai directement sur un Variant, un Variant peut etre une chaine un entier un flottant ....
HumJe test.. Je suis b�te .. c'est un nombre.. je sais pas pourquoi je me voyais modifier la case des noms.. Lol
Tire de l'aide en ligne
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 LeftStr Renvoie la sous-chaîne initiale d'une chaîne d'après la longueur spécifiée. Unité StrUtils Catégorie routines de gestion des chaînes extern PACKAGE AnsiString__fastcall LeftStr(const AnsiString AText, int ACount); Description LeftStr renvoie les premiers ACount caractères de AText. Par exemple : LeftStr("Programmer", 7) renvoie la chaîne "Program" //=========== RightStr Renvoie la sous-chaîne finale d'une chaîne d'après la longueur spécifiée. Unité StrUtils Catégorie routines de gestion des chaînes extern PACKAGE AnsiString__fastcall RightStr(const AnsiString AText, int ACount); Description RightStr renvoie les derniers ACount caractères de AText. Par exemple : RightStr("Programmer", 7) renvoie la chaîne "grammer"
Bah il faut que je t�l�charge StrUtils.h ?
Parce que �a me dit que ca ne fonctionne pas . Que le fonction n'existe pas . Et j'ai pas encore trouv� de StrUtils.h x)..
il suffit juste de mettre dans l'entete du programme " #include "StrUtils.hpp " ou peut etre suivant ta version BCB " #include "StrUtils.h "
Impossible d'ouvrir le fichier include 'StrUtils.hpp'PS : Bient�t je fais ca avec une soustraction U_uImpossible d'ouvrir le fichier include 'StrUtils.h'
Bcb v.5
normalement cela s'ecrit comme ceci
pour BCB5 je ne sais pas
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "utilcls.h" // <----------- #include "StrUtils.hpp" // <------------ //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
Partager