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

C++Builder Discussion :

Pilotage Ole Excel est nombre de ligne ou de colonnes dans une zone


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut Pilotage Ole Excel est nombre de ligne ou de colonnes dans une zone
    Bonjour à tous

    J'aimerais savoir si d'une part, il est possible de définir une zone de cellules comme on peut le faire par sélection.

    Et ensuite, s'il est possible pour cette zone de cellules de connaitre le nombre de colonnes et lignes comme on peut le faire pour la zone utile dans une feuille (présenté dans la Faq).

    Merci d'avance pour votre aide

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    kurul1 a ecrit:
    J'aimerais savoir si d'une part, il est possible de définir une zone de cellules comme on peut le faire par sélection.

    Et ensuite, s'il est possible pour cette zone de cellules de connaitre le nombre de colonnes et lignes comme on peut le faire pour la zone utile dans une feuille (présenté dans la Faq).
    Je pense qu'avec cette procedure ca correspondra a tes besoins.
    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
     
    // definition des coordonnees
    int premiere_ligne;
    premiere_ligne = 14;
    int derniere_ligne;
    derniere_ligne = 26;
    int premiere_colonne;
    premiere_colonne = 4;
    int derniere_colonne;
    derniere_colonne = 7;
     
    // on selectionne la feuille sur laquelle on travaille
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
     
    // on selectionne la plage de cellules
    vWorksheet.OlePropertyGet("Range", vWorksheet.OlePropertyGet("Cells", premiere_ligne, premiere_colonne), vWorksheet.OlePropertyGet("Cells", derniere_ligne, derniere_colonne)).OleFunction("Select");
    Par calcul il est facile de savoir le nombre de lignes et de colonnes de la selection.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  3. #3
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Merci beaucoup pour ton aide, je vais étudier ca.

    en fait, quand je sélectionne un nombre de colonnes, je ne connait pas le nombre de lignes, c'est pour ca que je veux le calculer.

    J'ai des fichiers Excel à traiter ou mes données sont en colonnes. Je traite les 2 premières, puis les 2 suivantes, ..... Le nombre de ligne pour ces sélections de colonnes ne sont pas forcément les mêmes (Par contre elles sont les mêmes pour les deux colonnes sélectionée), voilà pourquoi je veux calculer le nombre de colonnes pour cette plage. Je peux également faire de meme en sélectionnant des lignes et ne connaissant pas le nombre de colonnes.

    J'espère avoir été clair

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut kurul1:
    Pour connaitre le nombre de lignes et de colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // on compte le nombre de lignes et le nombre de colonnes
    //
    Variant Rows, Count, vUsedRange, vLines;
            vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
           vUsedRange = vWorksheet.OlePropertyGet("UsedRange");
           vLines =  vUsedRange.OlePropertyGet("Rows");
           int i =  vLines.OlePropertyGet("Count");
           vLines =  vUsedRange.OlePropertyGet("Columns");
           int ii =  vLines.OlePropertyGet("Count");
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #5
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    C'est ce qu'il y a dans la fac, mais c'est pour l'emsemble des cellules.

    Est-ce que tu sais si cela fonctionne pour une zone de sélection car c'est cela que je recherche.

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    kurul1 a ecrit:
    Est-ce que tu sais si cela fonctionne pour une zone de sélection car c'est cela que je recherche.
    Je ne sais pas mais si tu a un exemple en VBE on peu peut etre le convertir.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #7
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Non je n'ai aucun exemple.

    J'ai trouver dans la faq comment sélectionner une ligne ou une colonne entière mais c'est tout.

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    J'ai fait ceci il y a cependant un petit inconvegnant quand on compte une insertion de colonnes il en compte une de plus, mais donne le nombre exacte si on insere des lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    // on active la feuille 1
    vWorksheet = vXLWorkbook.OlePropertyGet("Worksheets", 1);
    // on se positionne sur la 1er cellule
    vWorksheet.OlePropertyGet("Range", "A1").OleProcedure("Select");
    vMSExcel.OlePropertyGet("ActiveCell").OlePropertyGet("CurrentRegion").OleProcedure("Select");
    // bb nombre de colonnes
    bb = vMSExcel.OlePropertyGet("Selection").OlePropertyGet("Columns").OlePropertyGet("Count");
    // cc nombre de lignes
    cc = vMSExcel.OlePropertyGet("Selection").OlePropertyGet("Rows").OlePropertyGet("Count");
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  9. #9
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Merci, je vais étudier ca.

  10. #10
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait je vais avoir des soucis car mon fichier a des lignes ou des colonnes vides.

    Tu connaitrait pas un moyen de savoir si une cellule est vide ?

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Points : 3 766
    Points
    3 766
    Par défaut
    kurul1 a ecrit:
    En fait je vais avoir des soucis car mon fichier a des lignes ou des colonnes vides.

    Tu connaitrait pas un moyen de savoir si une cellule est vide ?
    Oui c'est possible voici le code en VBE je n'ai pas eut le temps pour essayer de convertir le code en Ole
    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
     
    'colonnes vides
    With ActiveSheet.UsedRange
    derLi = .Column + .Columns.Count - 1
    End With
    Application.ScreenUpdating = False
    For r = derLi To 1 Step -1
    If Application.CountA(Columns(r)) = 0 Then MsgBox ("La colonne est vide" & Columns(r).Address)
    Next r
     
    'lignes vide
    With ActiveSheet.UsedRange
    derLi = .Row + .Rows.Count - 1
    End With
    Application.ScreenUpdating = False
    For r = derLi To 1 Step -1
    If Application.CountA(Rows(r)) = 0 Then MsgBox ("La ligne est vide" & Rows(r).Address)
    Next r
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  12. #12
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait, j'ai trouver,

    il te suffit de récupérer le contenu de la cellule dans un Variant et de tester si ce Variant n'est pas vide (Variant.IsEmpty()). Ca à l'air de fonctionner comme ca.

    Merci pour ton aide.

  13. #13
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait je me suis fait 2 fonctions, une pour les lignes et une pour les colonnes qui me compte le nombre de cellule non vide et j'obtient ce que je voulais. Encore merci pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. limiter le nombre de lignes et de colonnes d'une feuille excel
    Par Laye dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 19/01/2023, 21h55
  2. Réponses: 2
    Dernier message: 24/04/2014, 10h39
  3. Recuperer le nombre de ligne d'un fltre dans une variable
    Par tools dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/01/2011, 23h00
  4. Réponses: 8
    Dernier message: 15/02/2008, 21h53
  5. Réponses: 5
    Dernier message: 27/12/2006, 16h56

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