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

Excel Discussion :

Recherche d'une range et comparaison du max en VBA [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur Fiabilté
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut Recherche d'une range et comparaison du max en VBA
    Bonjour à tous,

    Voila je souhaiterais faire ceci :

    J'ai un fichier excel avec dans la colonne A des chiffres (il peut y avoir plusieurs fois le même chiffre), dans la colonne B il y a d'autres chiffres (pareil il peut y avoir plusieurs fois le même).

    Dans une txt j'inscris le chiffre que je recherche dans la colonne A, et je souhaiterais dans un lbl afficher le max + 1 de la colonne B en fonction de la range de A trouvé.

    Exemple :

    A1 = 1 B1 = 1
    A2 = 1 B2 = 2
    A3 = 2 B3 = 1
    A4 = 1 B4 = 3
    A5 = 2 B5 = 2
    A6 = 1 B6 = 4
    A7 = 2 B7 = 3
    A8 = 1 B8 = 5


    J'inscris dans ma txt le chiffre 1 et dans ma lbl je souhaiterais avoir 6 car dans la colonne A il y a déjà 5 fois le chiffre 1 (ceux sont les chiffres qu'indique la colonne B)


    Voila ce que j'ai essayer mais sans succès :

    Dim U as Range
    Dim H as range
    Dim K as Integer
    Dim N as Integer

    N = txt.value

    Set U = sheet("Sheet1").columns("A").find(N,lookat:=xlWhole)

    H.value=Worksheetfunction.vlookup(U.value)

    K=worksheetfunction.max(H.value)

    lbl.caption=K+1

    Mais hélas le programme bug a la ligne H.Value....

    Merci de votre aide.

  2. #2
    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 Novagsk, bonsoir le forum,

    la fonction VLookup a besoin d'au moins deux arguments obligatoires. Il est donc normal que ton code plante. De plus, Cette fonction ne renvoie que la première occurrence trouvée. Essaie comme ça :

    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
    Sub Macro1()
    Dim N As Integer 'déclare la variable N (Nombre)
    Dim O As Object 'déclare la variable O (Onglet)
    Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
    Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
    Dim I As Integer 'déclare la variable I (Incrément)
    Dim VM As Integer 'déclare la variable VM (Valeur Maximum)
     
    N = txt.Value 'définit le nombre N
    Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter)
    DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
    TC = O.Range("A1:B" & DL) 'définit le tabelau de cellules TC
    For I = 1 To UBound(TC, 1) 'boucle sur toutes les lignes du tableau TC
        If TC(I, 1) = N Then 'condition : si la cellule dans la colonne A, ligne I est égale à N
            'si la valeur de la cellule en colonne B est suprérieure à VM, alors VM devient cette valeur
            If TC(I, 2) > VM Then VM = TC(I, 2)
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle
    lbl.Caption = VM + 1 'renvoie VM + 1 dans la label lbl
    End Sub
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur Fiabilté
    Inscrit en
    Octobre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 30
    Points : 18
    Points
    18
    Par défaut
    Salut Thautheme

    Bah écoute merci beaucoup pour ce code, c'est exactement ce que je voulais.

    Et merci pour les commentaire, cela me permettra de réutiliser certaine ligne dans d'autre partie de mon code.

    Bon dimanche à toi.

    Sujet résolut, merci encore.

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

Discussions similaires

  1. [RegEx] Recherche dans une table mysql et comparaison
    Par hat_et_m dans le forum Langage
    Réponses: 24
    Dernier message: 23/02/2011, 23h11
  2. Recherche d'une petite astuce pour faire marcher max-width sous ie6
    Par tchetchene dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2010, 13h51
  3. Recherche d'une cellule à l'intersection de colonne en vba
    Par mattetienne dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 11/08/2009, 11h38
  4. Realiser une recherche sur une variable "range"
    Par Esmax666 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/06/2009, 10h17
  5. [JSP/JSTL]recherche d'une valeur max
    Par abalgue dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 11/06/2007, 18h58

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