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 :

Recherche de numéro de colonne d'une cellule identifiée selon un critère (max) [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Recherche de numéro de colonne d'une cellule identifiée selon un critère (max)
    Bonjour,

    Je suis débutant en VBA et j'aimerais faire la chose suivante :

    J'ai une plage de données de cette forme (simplifiée ici) :

    4 14.5
    3 12.7
    5 4.3

    J'aimerais :
    1)Calculer le max de la colonne 2 (ça je crois savoir faire avec par exemple M=WorksheetFunction.Max(col2) en supposant que j'ai appelé ma colonne 2 "col2")
    2)Obtenir le numéro de ligne de la cellule dans laquelle se trouve le Max de cette colonne 2 que je viens de trouver, pour l'utiliser ensuite


    Merci beaucoup d'avance pour ceux qui peuvent m'aider

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut




    Bonjour,

    voir la fonction de feuille de calculs EQUIV (Match en VBA) par exemple …



    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir le fil, bonsoir le forum,

    Si, comme moi, tu n'aimes pas les formules, essaie le code ci-dessous :

    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
    Sub Macro1()
    Dim O As Worksheet 'déclare la variable O (Onglet)
    Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
    Dim LI As Integer 'déclare la variable LI (LIgne)
     
    Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter)
    TC = O.Range("B1:B" & O.Range("B" & Rows.Count).End(xlUp).Row) 'définit le tableau de cellules TC (les données en colonne B)
    For I = 1 To UBound(TC, 1) 'boucle sur toutes les lignes I du tableau de cellules TC
        'condition : si la valeur en ligne 1 colonn e1 du tableau TC est égale à la valeur max de TC
        If TC(I, 1) = Application.WorksheetFunction.Max(TC) Then
            LI = I 'récupère le numéro de ligne dans la variable LI
            Exit For 'sort de la boucle
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle
    MsgBox LI 'message qui renvoie la ligne LI
    'remplace le message par ton code...
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  4. #4
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Points : 658
    Points
    658
    Billets dans le blog
    17
    Par défaut
    utilise la fonction application.match(ta valeur, le nom de ton vecteur, 0) le zero c'est toujours. Ca te donnera le rang de la valeur dans un vecteur.
    Deux possibilites ou tu fait passer ton range (ta colonne) dans un tableau 1 dim , et tu recherche le max et tu recupere le rang, ou sinon tu peux fonctionner avec une boucle.
    La premiere solution est meilleur. Si tu veux un exemple je peux t'en donner un j'ai fait un peu la meme chose pour un projet ya pas longtemps
    Allez le RC LEns

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Avec une petit exemple :
    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
     
    Sub Position()
     
        Dim Plage As Range
     
        Set Plage = Range("A1:A17")
     
        With Application.WorksheetFunction
     
            'renvoi la position ordinale dans la plage
            'et non le numéro de ligne dans la feuille
            MsgBox .Match(.Max(Plage), Plage, 0)
     
        End With
     
    End Sub
    Hervé.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup à tous pour vos réponses et bonne journée!

  7. #7
    Membre habitué Avatar de goninph
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2013
    Messages : 725
    Points : 184
    Points
    184
    Par défaut
    Hello,

    Comment modifier ce code pour touver le numéro de colonne de la feuille contenant la date du 14.10.2019 dans une ligne contenant toutes les dates de l'années 2019?

    Merci
    Bonne journée

    Citation Envoyé par Theze Voir le message
    Bonjour,

    Avec une petit exemple :
    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
     
    Sub Position()
     
        Dim Plage As Range
     
        Set Plage = Range("A1:A17")
     
        With Application.WorksheetFunction
     
            'renvoi la position ordinale dans la plage
            'et non le numéro de ligne dans la feuille
            MsgBox .Match(.Max(Plage), Plage, 0)
     
        End With
     
    End Sub
    Hervé.

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

Discussions similaires

  1. Numéro de ligne et colonne d'une cellule colorée
    Par saninx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/03/2015, 09h58
  2. Réponses: 8
    Dernier message: 23/03/2010, 17h24
  3. Mettre le titre d'une colonne dans une cellule
    Par Argonan dans le forum Excel
    Réponses: 6
    Dernier message: 25/02/2009, 21h47
  4. [E-00] Recherche du numéro de colonne d'une case identifiée
    Par julieng31 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 04/11/2008, 12h43
  5. Lettre de la colonne d'une cellule.
    Par Pierre Fauconnier dans le forum Contribuez
    Réponses: 6
    Dernier message: 17/11/2007, 11h31

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