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 maximum dans une colonne


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
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut recherche de maximum dans une colonne
    bonjour,
    j'ai un tableau dans lequel une acquisition de temperature a été réalisé en fonction de la distance à une source de chaleur
    je souhaiterai obtenir plusieurs renseignements: la temperature maxi et la distance à laquelle cette temperature est maxi
    pour trouver le numero de ligne, je compte utiliser la fonction equiv()
    (le nombre de données pouvant varier, je détermine d'abord Nb_data)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     maxi = "=MAX(DONNEES!R1C12:R" & Nb_data & "C12)"
     numero_ligne = equiv(maxi ; R1C12:R" & Nb_data & "C12;0)
    seulement, j'obtiens l'erreur "attendu separateur de liste ou )" au niveau de ':'

    merci de votre reponse

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour

    Si tu veux utiliser les formules Excel, il te faut soit l'affecter a une cellule que tu masqueras

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Range("A1").FormulaLocal= "=MAX(DONNEES!R1C12:R" & Nb_data & "C12)"
    maxi = Range("A1").value
    Soit utiliser les formules directement dans VBA via Application.WorksheetFunction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maxi = application.WorksheetFunction.Max(sheets("DONNEES").range(....

    NB : de plus il manque des "" sur la formule Ligne 3

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Une proposition, trouver le maximum en colonne L (Température) et la donnée correspondante dans la colonne M (Distance correspondant à cette T max)
    A adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MaxiT As Double, Dist As Double
     
    With Sheets("Feuil1")
        MaxiT = Application.Max(.Range("L:L"))
        Dist = Application.VLookup(MaxiT, .Range("L:M"), 2, False)
    End With

  4. #4
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut Recherche Maxi
    Bonjour à vous 3 (ravi de vous retrouver Jérôme et Mercatog)

    J'avais aussi.

    (Le code est plus long mais il retourne des fonctionnalités qui peuvent servir à notre ami.)

    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
    21
    22
    23
    24
    25
    26
    27
    Public Sub essai2()
     
    'Affectation des variables
    Dim champ As Range
    Dim derlign As Long
    Dim maxi As Long
     
    With Sheets("Feuil2")
            'dernère ligne du champ de recherche
            derlign = .Cells(.Rows.Count, 1).End(xlUp).Row
            'définition du champ de recherche
            Set champ = .Range("A1:A" & derlign)
            'recherche du maximum
            maxi = WorksheetFunction.Max(champ)
            'renvoi de la ligne où se trouve ce maximum
            maligne = champ.Find(maxi, LookIn:=xlValues).Row
            'température cherchée dans la colonne B à cette ligne
            latempérature = .Range("B" & maligne)
    End With
     
    'résultat dans la fenêtre Exécution
    Debug.Print maxi & " - " & latempérature
     
    'variable champ vidée
    Set champ = Nothing
     
    End Sub
    Tu ne peux écrire la même fonction dans l'éditeur VBE avec la même syntaxe que dans une feuille de calcul.
    Généralement, tu utilises la méthode
    suivi du nom de la fonction (en anglais) si elle existe dans le VBE.
    Tu peux en vérifier l'existance en saisie semi-automatique.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Par défaut
    bonjour marcelG,
    j'ai reproduis votre code sur excel 2003, et il ne fonctionne pas sur ma machine, en particulier, il n'a pas l'air d'apprecier .Range, la ligne 16 non plus d'ailleurs...

    en fait le programme fonctionne lorsque maxi est un Long mais pas lorsque c'est un Double...
    merci!

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut variable
    Salut,

    A toi d'adapter Anthodub.

    Voir pour cela le tutoriel de Sylkiroad

    Les Variables

    N'oublie pas de marquer ton post en Résolu si c'est le cas.

Discussions similaires

  1. [XL-2007] Rechercher un jour dans une colonne
    Par apt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2012, 21h30
  2. Recherche de maximums dans une matrice
    Par zizi_coin_coin dans le forum MATLAB
    Réponses: 12
    Dernier message: 22/12/2010, 16h07
  3. Recherche de mot dans une colonne
    Par ticad dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/04/2010, 08h40
  4. Recherche Valeur -> écrire dans une colonne de cette ligne
    Par Xiombarg2911 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/04/2008, 14h12

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