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 :

Sélection cellule et toutes celles en dessous


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut Sélection cellule et toutes celles en dessous
    Bonjour à tous,
    Pour structurer ma feuille de calcul, je souhaiterais réaliser un fonction qui sélectionnerait toutes les valeurs en dessous d'une cellule,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function CellulesEnDessous(Plage As Range) As Range
     
    CelluleEnDessous = [Plage]: [COLONNE PLAGE ; DERNIERE LIGNE PLAGE]
     
    End Function
    J'ai trouvé comment sélectionner la dernière uniquement (avec .X, mais pas comment faire une sélection depuis la cellule Plage)
    Pour sélectionner juste la dernière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").End(xlDown).Select
    Merci de votre aide !!

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Si ton paramètre Plage ne représente qu'une seule cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set CellulesEnDessous = Range(Plage.Offset(1, 0), Cells(Rows.Count, Plage.Column).End(xlUp))
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Re,

    Merci pour votre aide !
    Je n'arrive toutefois pas à mettre bout à bout tout cela...
    Le plus proche de ce que je veux ressemble à cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function COLONNEAPARTIRDE(plage As Range) As Range
     
    COLONNNEAPARTIEDE = Range(Cells(plage.Row, plage.Column), Cells(Rows.Count, plage.Column))
     
    End Function
    Mais qu'est ce qui ne va pas dans cette fonction ??

    Edit : j'ai oublié de préciser que je me contente de la dernière ligne du tableau entier, dans le but de siimplifier ma compréhension...
    Cdt

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Farmer64 Voir le message
    Mais qu'est ce qui ne va pas dans cette fonction ??
    Ce qui ne va pas, c'est que tu ne prends pas la peine de décrire exactement ce que tu souhaites.
    Tu ne prends pas non plus la peine de dire ce qui ne va pas dans la réponse que j'ai faite ni dans la dernière formule que tu proposes.
    Tu ne peux donc pas obtenir de réponse satisfaisante.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Euh oui c'est vrai en effet...

    Je souhaite pouvoir réaliser des recherches sans me préoccuper du nombre de lignes de mon tableur.
    Pour cela, je voudrais une fonction renvoyant une plage de cellules situées à partir de la cellule posée en argument, et contenant cette cellules et toutes celles en dessous jusqu'à la dernière ligne.

    Je suis preneur aussi de toute autre astuce qui me permet d'arriver à ma finalité !!



    Merci de votre patience avec moi, peu habitué aux forums et trop la tête dans le guidon pour relire mes bêtises

    Edit : le fonction présentée ci dessous, ainsi que la fonction avec l'astuce de Menhir, renvoient #Valeur...

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Une fonction n'est pas très indiquer pour traiter des références de cellules.
    Une référence de cellule contient non seulement sa ligne et sa colonne mais aussi son onglet, son classeur et beaucoup d'autres information.

    Donc, quand on écrit Range(Plage, Cells(1000, Plage.Row)), on lui demande de faire une zone allant de Plage jusqu'à la ligne 1000 de la colonne de Plage mais dans l'onglet courant. Or rien n'assure que l'onglet courant soit le même que celui de Plage.
    La seule solution est de faire un Offset sur Plage pour être sûr que les deux références du Range correspondent à ces cellules dans le même onglet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COLONNNEAPARTIEDE = Range(plage, plage.Offset(Rows.Count - plage.Row - 10, 0).End(xlUp))
    Ensuite, il faut utiliser cette fonction à l'intérieur d'une autre fonction qui puisse utiliser une matrice, comme INDEX ou RECHERCHEV.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Agriculteur
    Inscrit en
    Juillet 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Agriculteur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Super, c'est exactement ça merci !

    En complément, le rows.Count est-il une propriété de l'onglet ou de la colonne elle-même ?

    Merci encore,

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Farmer64 Voir le message
    En complément, le rows.Count est-il une propriété de l'onglet ou de la colonne elle-même ?
    Le nombre maxi de ligne est un paramètre de Excel.
    Quelle que soit la colonne et quelle que soit l'onglet, la valeur renvoyée sera la même (tant que la feuille active n'est pas un graph pur).
    Donc peu de soucis à se faire concernant cette propriété.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/07/2018, 10h16
  2. [XL-2010] Somme du nombre de cellules dont celle du dessous contient ?
    Par zoilgust dans le forum Excel
    Réponses: 16
    Dernier message: 01/09/2017, 11h57
  3. [VBA-E]Couleur de cellule sur toute une ligne
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/03/2007, 11h01
  4. Sélection Cellule StringGrid
    Par Vodkha dans le forum Delphi
    Réponses: 3
    Dernier message: 04/09/2006, 14h25
  5. [VBA-E] Supprimer le cont de cellules dans toutes les feuill
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/03/2006, 09h44

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