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

Macros et VBA Excel Discussion :

macro pour parcourir une selection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut macro pour parcourir une selection
    Bonjour,

    Voilà mon projet:

    L'utilisateur selectionne avec la souris une serie de lignes dans une table excel. Par exemple les lignes 6 à 15 et 22 à 33... où sont stockés des enregistrements :produit,date,prix, ref... tout ce qu'on veut..

    Je clique sur un bouton et la macro m'enregistre chaque ligne dans un array.
    Je récupère ainsi une selection d'enregistrements genre ligne[i][j], i numero de ligne et j numero de cellule (produit,date,prix,..).

    Voilà..

    Il me manque ce point de départ , une fois que j'aurais l'array je pourrais me débrouiller !

    Merci pour vos idées..

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ' Zones sélectionnées
       Nb_zone = Selection.Areas.Count
       For iz = 1 To Nb_zone
            Lig_Deb = Selection.Areas(iz).Row
            Lig_Fin = Selection.Areas(iz).Rows.Count + Lig_Deb - 1
       Next
    devrait convenir

    PPz

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Merci mais ...
    438 :J'obtiens l'erreur proprieté ou methode non géré par cet objet

    Et puis je vois pas très bien où est mon array final avec les enregistrements selectionnés..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub monboutton()
       Nb_zone = Selection.Areas.Count
       For iz = 1 To Nb_zone
            Lig_Deb = Selection.Areas(iz).Row
            Lig_Fin = Selection.Areas(iz).Rows.Count + Lig_Deb - 1
       Next
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 25
    Par défaut
    Bonjour,

    Si j'ai bien compris tu souhaites transformer une plage de cellule sous excel en une variable de type tableau en VBA ?

    Essayes cela :
    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
     
    function GetArray() as variant
     
       dim nb_row as long,nb_col as long,i as long,j as long
       dim var_Array as variant
       dim rge_First as range
     
       set rge_First=selection.item(0)
       nb_row=selection.rows.count
       nb_col=rge_First.end(xltoright).column-rge_First.column
       redim var_Array(0 to nb_row,0 to nb_col)
     
       for i=0 to nb_row
          for j=0 to nb_col
             var_array(i,j)=rge_First.offset(i,j).value
           next j
       next i
     
       GetArray=var_Array
    end function

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    Merci, c'est à peu près ça que je souhaite
    Néanmoins j'ai une erreur d'exécution 1004.. sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rge_First = Selection.Item(0)
    De plus j'aimerais bien récupérer les numéros de ligne réelle du classeur et pas seulement les numéros d'ordre de la sélection..

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 25
    Par défaut
    Essaye en remplacant ) par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selection.cells.item(0)
    Pour l'autre chose introduit une variable deb_col valant la ligne de la première cellule, et tu changes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redim var_Array(0 to nb_row,0 to nb_col)
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redim var_Array(0 to nb_row,deb_col to deb_col+nb_col)
    et ça devrait le faire (pense également à changer le j)

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

Discussions similaires

  1. [AJAX] Menu déroulant dynamique pour parcourir une BD
    Par relena dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 25/03/2007, 17h05
  2. macro pour lancer une requête
    Par Kleer dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2007, 21h16
  3. Pb pour parcourir une Datagrid Sheridan SSDBGrid
    Par hn2k5 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/01/2007, 14h14
  4. macro pour remplire une liste dans une même cellule
    Par fabiend83 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/07/2006, 09h32
  5. [VBA-E] [help]macro pour dupliquer une feuille (en valeur)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 07/11/2005, 19h24

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