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 :

Définir la valeur mini qui a le plus d'occurences


Sujet :

Macros et VBA Excel

  1. #21
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    ben non je l'avais pas vu ca change de page juste après

    oui bon ben voila il la sont truc en moins de 10 lignes
    et même le dico et retourné dans l'ombre

    le plus marrant c'est que j'ai trouvé une autre méthode mais on va arrêter la je crois

    et dingue oui dingue de découverte
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #22
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Joe tu es un peu mauvaise langue, dans cette discussion Patrick n'est pas si fainéant.

    Il a déclaré toutes les variables !!!!! :p
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  3. #23
    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 677
    Points
    18 677
    Par défaut
    Bonjour, Bonjour !

    Patrick, ta voie par addition / multiplication peut être une erreur car par exemple avec 12, 11, 13 se suivant,

    3 x 12 = 36 et 12 + 11 + 13 = 36 ‼

    Une voie simple par comparaison de chaînes de caractères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Demo1()
             Dim Rg As Range
        For Each Rg In Range("A1", [A1].End(xlDown)(-1))
            If Application.Rept(Rg.Value, 3) = Rg.Value & Rg(2).Value & Rg(3).Value Then V = Application.Min(Rg.Value, IIf(V, V, Rg.Value))
        Next
             MsgBox IIf(V, V, "Pas de valeur !")
    End Sub
    Ou tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Demo2()
             Dim Rg As Range
        For Each Rg In Range("A1", [A1].End(xlDown)(-1))
            If Rg(2).Value = Rg.Value And Rg(3).Value = Rg.Value Then V = Application.Min(Rg.Value, IIf(V, V, Rg.Value))
        Next
            MsgBox IIf(V > "", V, "Pas de valeur !")
    End Sub
    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, …
    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)

  4. #24
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    MarcL avec Rept non plus

    Contre exemple

    22, 222, 2
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #25
    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 677
    Points
    18 677
    Par défaut


    Mince ! Exact ! Purée …

    Ok avec ma Demo2 …

    Version avec une variable tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Demo3()
            VA = Range("A1", [A1].End(xlDown)).Value
        For R& = 1 To UBound(VA) - 2
            If VA(R + 1, 1) = VA(R, 1) And VA(R + 2, 1) = VA(R, 1) Then V = Application.Min(VA(R, 1), IIf(V, V, VA(R, 1)))
        Next
            MsgBox IIf(V > "", V, "Pas de valeur !")
    End Sub
    Big up to Patrick pour éviter le max d'un milliard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Demo3b()
            VA = Range("A1", [A1].End(xlDown)).Value
            M& = Application.Max(VA) + 1
            L& = M
        For R& = 1 To UBound(VA) - 2
            If VA(R + 1, 1) = VA(R, 1) And VA(R + 2, 1) = VA(R, 1) Then M = Application.Min(VA(R, 1), M)
        Next
            MsgBox IIf(M < L, M, "Pas de valeur !")
    End Sub
    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    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)

  6. #26
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour marc je l'avais réalisé après

    j'avais aussi envisagé la fonction rept c'est la méthode que je parlais a la fin

    bon ben voila on est parti de boucle imbriqué au début a une seule boucle propre et nette

    le principe de partir du 2 item jusque a l'avant dernier en testant le item -1 et le item +1 étant je crois la solution la plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if tablo(i-1,1)& tablo(i,1) & tablo(i+1,1)=application.rept(tablo(i,1),3) then
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #27
    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 677
    Points
    18 677
    Par défaut


    Sûr …

    Et même sans VBA via de simples formules de calcul et une colonne supplémentaire …
    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)

  8. #28
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Citation Envoyé par antonysansh Voir le message
    Joe tu es un peu mauvaise langue, dans cette discussion Patrick n'est pas si fainéant.

    Il a déclaré toutes les variables !!!!! :p
    vous ëttent des moqueurs toi et joe tète de piaf comme ton avatar
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #29
    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 677
    Points
    18 677
    Par défaut




    Joe n'ayant pas d'avatar, c'est Antony !
    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)

  10. #30
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par Marc-L Voir le message


    Sûr …

    Et même sans VBA via de simples formules de calcul et une colonne supplémentaire …
    et oui mais voila nous somme dans le forum exel VBA

    j'ai eu un soucis avec mon ordi j'ai laissé arriver W10 et j'ai rétrogradé car ce fut la débandade tout mes décompiler ne fonctionnaient plus j'ai donc formaté réinstaller, et devine quoi
    le petit icone W10 en attente est arrivé dans les premières mises a jours après les plus importantes c'est des salots
    bon bref maintenant je suis reparti comme au début il tourne nickel tout mes compléments vba sont de nouveau opérationnels
    c'a m'ennuyais de tourner comme mon pc portable avec un 6 giga de proc et 32(24 utilisé) giga de mémoire
    très content moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #31
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Citation Envoyé par mercatog Voir le message
    MarcL avec Rept non plus

    Contre exemple

    22, 222, 2
    et oui Mercatog a raison
    en fait il faut rester sur le test de l'item -1,item,+1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if item=item-1 and item=item+1 then
    c'est tout comme ca il n'y a pas de méprise possible, on repasse le test en long en fait
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  12. #32
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    vous ëttent des moqueurs toi et joe tète de piaf comme ton avatar
    Patrick j'avais pensé à te le dire depuis un moment, tu devrais à ajouter à ta signature :
    Avant de tester mon code assurez-vous d'avoir enlevé Option Explicit en tête de module


    Et non je ne suis pas du tout moqueur ^^

    J'adore suivre ce genre de file car ils sont formateurs
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  13. #33
    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 677
    Points
    18 677
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    en fait il faut rester sur le test de l'item -1,item,+1
    Oui, et c'est pour cela que je t'ai fait une spéciale dédicace avec ma Demo3b du post #25

    car sans le + 1 ton code du post #17 peut aussi aller sucrer les fraises !
    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)

  14. #34
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    post 56
    Sub test3()
    Dim tablo, i As Long, minimum As Long
        With Sheets(1): tablo = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)): End With
          minimum = Application.Max(tablo)
          For i = 2 To UBound(tablo) - 1
            If tablo(i - 1, 1) + tablo(i, 1) + tablo(i + 1, 1) = tablo(i, 1) * 3 Then
                minimum = IIf(tablo(i, 1) < minimum, tablo(i, 1), minimum)
            End If
        Next
        MsgBox "le plus petit chiffre qui a au moins 3 occurences ou plus   c'est le  " & minimum
    End Sub
    heu c'est pas le +1 qui est un soucis c'est le mode de comparaison comme mercatog et toi même l 'avez souligné = a la place de+ =sur l'item et l'item-1 et pareil pour le +1

    Avant de tester mon code assurez-vous d'avoir enlevé Option Explicit en tête de module
    oui bon ben je ne cache pas que sur la brèche je suis plus intéressé par la mécanique que le reste après je termine toujours mes codes

    enfin bref de toute façon sauf erreur de ma part le demandeur n'en a que faire des solutions proposées il a disparu
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #35
    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 677
    Points
    18 677
    Par défaut

    Non, pas pour la méthode de comparaison mais pour ton minimum du départ sans le + 1 …

    Dans le cas où il n'y a pas de correspondance, ton code renvoie la valeur calculée dans ta ligne n°5,
    juste à comparer avec ma Demo3b lignes n° 3, 4 & 8 !
    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)

  16. #36
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir marc
    a oui exact !!

    heu..!!!!!! non correction pas d'accords!!!!
    puisque la condition if teste seulement les 3 occurrences
    et c'est la condition IIf qui détermine si minimum prends la valeur
    donc si la prochaine occurrence consécutive est trouvée et quelle est plus petite que la précédentes minimum prends la valeur de l'occurrence
    donc le +1 a max n'est pas nécessaire

    si le minimum c'est le max et bien c'est le max c'est tout puisque minimum est le max déjà avant la boucle
    par contre la ou on fait erreur c'est que si il n'y a pas de chiffre a 3 occurrences ou plus le résultat donne le max et la!!! c'est faux!!!! tout du moins si il n'y a pas 3 fois le max

    il faut donc mettyre un compteur dans la boucle si >0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test3()
    Dim tablo, i As Long, minimum As Long,oc as long ,mess as string 
        With Sheets(1): tablo = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)): End With
          minimum = Application.Max(tablo)
          For i = 2 To UBound(tablo) - 1
            If tablo(i, 1) = tablo(i - 1, 1) And tablo(i, 1) = tablo(i + 1, 1) Then
               oc=oc+1
     minimum = IIf(tablo(i, 1) < minimum, tablo(i, 1), minimum)
            End If
        Next
       mess= iif( oc>0,"le plus petit chiffre qui a au moins 3 occurrences consécutives  ou plus   c'est le  " & minimum, "pas de suite consécutive!!!")
    msgbox mess
    End Sub
    et la on est bon Marc

    je dirais même mieux si on devait respecter scrupuleusement l'exactitude de la fonction elle me
    il faudrait faire comme ceci dans le IIf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    minimum = IIf(tablo(i, 1) <= minimum, tablo(i, 1), minimum)
    mais c'est pas utile puisque max est déjà le min

    alors c'est vrai max +1 supprimerait le besoins du compteur
    mais entre nous max +1 c'est un peu arbitraire de la même façon que le milliard
    donc le choix et simple ou (max+1/compteur )
    je cogite mieux a 2 plombes du mat
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #37
    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 677
    Points
    18 677
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    mais entre nous max +1 c'est un peu arbitraire de la même façon que le milliard
    Pas arbitraire du tout et nécessaire dans ma Demo3b et moins risqué que le milliard comme l'a évoqué Joe !

    Sinon regarde aussi mes Demo2 & Demo3, faut bien contrôler s'il y a une correspondance …
    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)

  18. #38
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    bonjour Marc
    bon j'ai bien regarder la demo3 et demo3b
    j'avoue que je comprends pas bien la forme d'ecriture
    pour la 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Min(VA(R, 1), IIf(V, V, VA(R, 1)))
    pour la 3b
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Min(VA(R, 1), M)
    apres
    dans mon exemple
    je n'ajoute pas le +1 a max pourtant cela fonctionne et c'est logique
    version avec compteur
    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
    Sub test3()
    Dim tablo, i As Long, minimum As Long,oc as long ,mess as string 
        With Sheets(1): tablo = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)): End With
          minimum = Application.Max(tablo) 'je n'ajoute pas le +1
          For i = 2 To UBound(tablo) - 1
            If tablo(i, 1) = tablo(i - 1, 1) And tablo(i, 1) = tablo(i + 1, 1) Then'si les 3item sont identiques 
               oc=oc+1'on ajoute + au compteur 
     
     'et c'est ici que tu n'apas compris ma démarche        
    'en fait on test si l'item qui est en triple est  plus petit que minimum qui est au max au départ 
    'si il n'est pas plus petit ou egal a max ,minimum reste minimum
    minimum = IIf(tablo(i, 1) < minimum, tablo(i, 1), minimum)
     
    End If
        Next
       ' ici dans le IIf sur le compteur si compteur  >0 il y a un triple alors on affiche 
    mess= iif( oc>0,"le plus petit chiffre qui a au moins 3 occurrences consécutives  ou plus   c'est le  " & minimum, "pas de suite consécutive!!!")
    msgbox mess
    End Sub
    je ne vois absolument pas pourquoi le +1 sur le max et obligatoire selon toi dans mon model en tout cas !!

    tiens voila encore une méthode un peu différente on supprime le test minimum
    principe un peu comme avec le dico au départ je stocke les triplet mais dans un tablo(arr)
    en fin de sub j'affiche le min du tablo
    tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test4()
        Dim tablo, i As Long, arr(), mess As String,e as long 
        With Sheets(1): tablo = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)): End With
        mess = "il n'y a pas de triplet dans cette liste !!"
        For i = 2 To UBound(tablo) - 1
            If tablo(i, 1) = tablo(i - 1, 1) And tablo(i, 1) = tablo(i + 1, 1) Then
                e = e + 1: ReDim Preserve arr(1 To e): arr(UBound(arr)) = tablo(i, 1)
           mess = "il ya  " & e & "  triplet(s) dans cette liste  et le plus petit qui a au moins 3 occurences ou plus c'est le  " & Application.Min(arr)
            End If
        Next
    MsgBox mess
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #39
    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 677
    Points
    18 677
    Par défaut

    Au moment où je t'ai dédié ma dédicace, ton code avec compteur n'existait pas !
    Il s'agissait donc de ton code test3 du post 26 …

    Exemple sans correspondance :

    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)

  20. #40
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour Marc
    a ok
    tu a vu le dernier plus de test sur le max/min

    avec quel outils tu réalise ta capture d'écran animée en gif ca m'intéresse !!!!!!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [XL-2003] Tableau: trouver la colonne qui a le plus de valeur
    Par deamonRav dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/04/2010, 09h58
  2. Réponses: 1
    Dernier message: 30/05/2007, 13h25
  3. [Debutant(e)]définir les valeurs possibles d'un param
    Par mouste79 dans le forum Langage
    Réponses: 7
    Dernier message: 18/11/2004, 10h48
  4. Root qui ne peux plus rien faire :'(
    Par Smortex dans le forum Administration
    Réponses: 2
    Dernier message: 27/09/2004, 20h13
  5. Qui ne voi plus les images ou smiley du forum ?
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 30
    Dernier message: 13/09/2004, 13h36

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