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 :

VBA - compter les lignes d'une selection et récupérer le numéro de la ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur Logistique
    Inscrit en
    Octobre 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Logistique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 104
    Par défaut VBA - compter les lignes d'une selection et récupérer le numéro de la ligne
    Bonjour à tous,

    J'aurais besoin dans un tableur excel de selectionner différentes lignes (soit en selectionnant des cases, soit en selectionnant des lignes entières, peu importe) et ai besoin de récupérer le nombre de ligne selectionnée.

    Alors, j'ai bien essayé un Selection.Rows.count mais ça ne fonctionne pas puisque le VBA ne me prends alors que la première sélection et me renvoi donc un nombre de ligne incorrect (sauf dans le cas d'une selection unique).

    En plus de ça j'aurais besoin de récupérer le numéro des lignes selectionnées, dans une variable (ou un tableau ou... enfait je ne sais pas trop, donc n'hésitez pas à me conseillez selon ce que vous auriez fait)

    Je vous remercie par avance,


    Philippe

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Par défaut
    Bonjour Phifou,
    Pour tes besoins, tourne-toi du côté de la collection Areas dans la FAQ ou dans le devcenter Office
    Cette collection te permettra de travailler avec des sélections multiples

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 63
    Par défaut
    Bonjour,

    Citation Envoyé par Phifou Voir le message
    En plus de ça j'aurais besoin de récupérer le numéro des lignes selectionnées, dans une variable (ou un tableau ou... enfait je ne sais pas trop, donc n'hésitez pas à me conseillez selon ce que vous auriez fait)
    Tu peux peut-être faire un tableau où tu entres la donnée que tu veux, et le numéro de la ligne. Un tableau à deux dimensions me semblerait donc bien, mais je suis loin d'être une pro alors je laisse les autres donner leur avis

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Un truc dans le genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub toto()
        Set sel = Union(Range("C1"), Range("D4:J7"), Range("M12"))
        For Each ar In sel.Areas
            x = x + ar.Rows.Count
        Next ar
        MsgBox ("il y a " & x & " lignes")
    End Sub
    Par contre si tu selectionnes des AREAS qui ont les mêmes lignes... Ton résultat sera faux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(Range("C1"), Range("D4:J7"), Range("M12"))
    x = 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Union(Range("C1"), Range("D4:J7"), Range("M4"))
    x = 6 alors que x devrait être égal à 5...

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur Logistique
    Inscrit en
    Octobre 2013
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Logistique
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2013
    Messages : 104
    Par défaut
    Mon idée étant de faire une copie de ces lignes selectionnées, pour les mettres ailleurs, je n'ai pas besoin fondamentalement de garder les valeurs des lignes, j'ai donc trouvé une solution (après trois jours de recherches ardues sur internet...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Cellule As Range
    Dim Plage As Range
    Dim maLigne as Integer
     
    Set Plage = Selection
     
    For Each Cellule In Plage
        maLigne = Cellule.Row
    'Travail avec maLigne...
    '...
    Next Cellule
    Et voilà !!! ça marche!!

    Merci à tous de votre aide,


    Philippe

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/02/2015, 15h02
  2. [XL-2007] Compter les cellules d'une même couleur avec SUMPRODUCT en VBA
    Par apt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/10/2012, 21h25
  3. VBA-E Compter les champs d'une cellule
    Par porc-bouc dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/09/2007, 16h05
  4. [VBA-E] compter les item d'une listbox
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/07/2006, 15h29
  5. Réponses: 19
    Dernier message: 03/08/2004, 10h26

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