[PERL+VBA] calcul de la taille des données

Fermé
snowsurfer69 Messages postés 10 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 26 juillet 2007 - 18 juil. 2007 à 11:09
 Eva95 - 31 mars 2008 à 15:08
Bonjour,

j'ai extrait des données d'un fichier Excel pour les exploiter ulterieurement.

mon programme parcours le fichier excel de la ligne 0 a la ligne 300 et extrait les données de chaques lignes pour les styocker dans un tableau.
Cela fonctionne tres bien.

Voici mon problème :
Le fichier excel étant amené a ètre modifié il est donc possible d'avoir + de 300 lignes, dans ce cas je serait amené a perdre des données.

Je voudrait donc pouvoir calculer la taille maximum des données contenues dans mon fichier excel, sachant qu'il peut y avoir des cases VIDES parfois dans les colonnes.

--> Il me faut donc calculer le nombre de lignes contenues entre le début du fichier (case A0) et la fin des données (case que je n'arrive donc pas a définir).

pour ouvrir lire mon fichier Excel j'utilise "Win32::OLE".

j'ai deja essayé des choses du genre :
----my $taille = Range(ActiveCell, ActiveCell->{End(xlDown)}->{'Count'}; etc... mais rien n'y fait cela ne fonctionne pas.

Je pensait m'en sortir mais je bloque trop.... heeeelp!!!
A voir également:

4 réponses

snowsurfer69 Messages postés 10 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 26 juillet 2007
25 juil. 2007 à 13:24
Y a vraiment personne qui as une idée??????????????????????????????
ou une remarque????????????????????????
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
25 juil. 2007 à 13:59
Salut,

avant de traduire en Perl ce que tu dois faire c'est de penser en Excel d'abord

--> Il me faut donc calculer le nombre de lignes contenues entre le début du fichier (case A0) et la fin des données (case que je n'arrive donc pas a définir).

Ce cas on le traite par exemple de cette maniere
nbligne = Range("A65536").End(xlUp).Row
nbligne te donne la dernière ligne qui contient des données (même s'il y a des lignes vides jusqu'à là)

Affiche ton code Perl et je vais regarder un peu plus tard, si jamais tu n'arrives pas à te debrouiller avec l'indication que je t'ai donnée
0
snowsurfer69 Messages postés 10 Date d'inscription vendredi 15 juin 2007 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2007 à 09:59
Merci tout dabor de m'avoir répondu!

effectivement cette solution me parrait ètre la plus a mème de résoudre mon problème de nombre de lignes max, je n'y avait pas pensé.

Ceci dit je n'arrive pas a transposer le code VBA en code perl.

J'utilise OLE pour lire mes fichiers Excel et voila ce qui me parrait le plus proche de la solution :

my $nbligne = $Sheet->Range("A65536", End(xlUp))->{'Row'};

mais cela ne fonctionne pas.

apres maintes combinaisons et recherches sur le web je suis de nouveau dans l'impasse.

... help!
0
Si cela peut encore aider :

J'utilise :
my $nbLigne = $Sheet->Range("A1")->End(xlDown)->{Row}

Bonne journée.

Eva
0