IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Nombre de lignes dans un fichier excel


Sujet :

WinDev

  1. #1
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut Nombre de lignes dans un fichier excel
    Bonjour chers tous,

    J'essaye de modifier la ligne 26 de code ci-dessous de l'exemple "Pilotage Excel" de WINDEV 17.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    nLigne est un entier
    nColonne est un entier
    nLigneDépart est un entier
    nColonneDépart est un entier
    sCellule est une chaîne
     
     
    Sablier(Vrai)
     
    // Première colonne : colonne A
    nColonneDépart+=Asc("A")
    // Première ligne : ligne 1
    nLigneDépart = 1
     
    // Titre des colonnes
    sCellule = Caract(nColonneDépart) + nLigneDépart
    COL_PRODUIT..Titre = gpclMonTableur:Cellule_Lire(sCellule)
    sCellule = Caract(nColonneDépart+1) + nLigneDépart
    COL_PRIXHT..Titre = gpclMonTableur:Cellule_Lire(sCellule)
    sCellule = Caract(nColonneDépart+2) + nLigneDépart
    COL_TVA..Titre = gpclMonTableur:Cellule_Lire(sCellule)
    sCellule = Caract(nColonneDépart+3) + nLigneDépart
    COL_QTE..Titre = gpclMonTableur:Cellule_Lire(sCellule)
     
    nOccurrenceTable est un entier = TableOccurrence(TABLE_PRODUIT)
    // Contenu de la table
    POUR nLigne=1 A nOccurrenceTable
    	POUR nColonne=1  A 4
    		// Construction du nom de la cellule (ex: C2)
    		sCellule = Caract(nColonne+nColonneDépart-1) + (nLigne+nLigneDépart)
    		TABLE_PRODUIT[nLigne][nColonne] = gpclMonTableur:Cellule_Lire(sCellule)
    	FIN
    FIN
     
    Sablier(Faux)
    voici le problème.

    La ligne 25 renvoie le nombre de ligne qu'il y a dans la table de mon formulaire. Si ce formulaire est vide, l'importation me ramène seulement la première ligne du fichier excel.

    j'ai testé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    nOccurrenceTable est un entier = 1000
    L'importation a fonctionné mais comme le nombre de ligne du fichier est inférieur, j'ai eu une répétition de la dernière ligne pour arriver à 1000.

    Je cherche donc à récupérer le nombre de lignes dans le fichier excel ouvert et non celui de la table.

    D'avance merci.

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    tout dépend comment est formatée ta feuille excel. On peut trouver la dernière ligne utilisée dans une feuille excel à partir de windev par (xExcel étant un objet Excel.Application) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xExcel>>ActiveSheet>>UsedRange>>Rows>>Count
    attention si il y a des cellules vides avec un formatage dedans elles sont prises en compte. Il vaut mieux utiliser alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xExcel>>ActiveSheet>>Cells>>Find("*",:m_xExcel>>ActiveSheet>>Range("A1") ,-4123,2,1,2,Faux)>>Row
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    Bonjour jurassic pork et merci pour ta réponse.

    J'ai essayé d'intégrer ton code dans celui que j'ai posté mais j'y arrive vraiment pas.

    Peux-tu s'il te plait me montrer comment je pourrais modifier pour que ça fonctionne.

    D'avance merci.

  4. #4
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    ton objet gpclMonTableur est déclaré comment ?

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  5. #5
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Windev propose 2 ou 3 outils pour traiter les fichiers excel, mais il ne faut pas les utiliser ( tu peux faire 2 ou 3 trucs avec, mais vraiment pas grand chose).
    Par contre, il y a un exemple livré avec Windev , de mémoire, il s'appelle : WD Pilotage OLE de Excel .
    Et cet exemple est une base super pour faire tout ce que tu veux avec Excel. Et le morceau de code fourni par MONSIEUR Jurassik Pork (on s'incline tous devant notre maître à tous) .. son morceau de code s'appuie sur cet exemple.

    Souvent , les débutants panachent les 2 technologies, ils mettent dans une même fonction des instructions de type OLE, et des instructions très spécifiques proposées par Windev pour traiter les fichiers Excel. Il ne faut pas panacher; il faut utiliser uniquement les commandes OLE.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  6. #6
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    Merci à vous tous,
    tbc92 je regarde l'exemple.

    jurassik porc, l'objet est dans déclaration global de la fenêtre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /// Variables globales à la fenêtre
    gpclMonTableur est un CTableur dynamique	// Objet CTableur
    CTableur est une classe qui permet de piloter excel.

  7. #7
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    houla je n'arrive pas à compiler l'exemple pilotage des tableurs où il y a la classe CTableur.
    Tu parles de l'exemple de pilotage de Excel mais dedans (du moins sous windev 16) il n' y a que la classe CExcel.

    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  8. #8
    Membre actif Avatar de lucienkany
    Profil pro
    Développeur
    Inscrit en
    Janvier 2004
    Messages
    257
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2004
    Messages : 257
    Points : 220
    Points
    220
    Par défaut
    WD16 Pilotage Excel, j'ai fait une mise à jour vers WD 17

Discussions similaires

  1. Nombre de lignes dans un fichier
    Par theshark85 dans le forum C
    Réponses: 48
    Dernier message: 05/05/2006, 10h15
  2. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  3. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo