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 :

Minimum d'une plage variable [XL-MAC 2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut Minimum d'une plage variable
    Bonjour

    Voici mon problème
    J'ai des valeurs inscrites dans la plage suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(i, 27),Cells(i+3,27))
    Certaines de ces valeurs peuvent être égales à 0

    Je voudrai récupérer la valeur minimum de cette plage qui ne soit pas égale à 0, le tout en VBA

    Merci d'avance

    Bonne soirée à tous

  2. #2
    Expert éminent 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
    Par défaut
    La méthode brutale mais efficace consisterait à faire une boucle For To.
    A chaque tour, tu vérifies avec un If si la valeur est supérieure à 0.
    Si c'est le cas, tu compares la valeur courante à la valeur retenue. Si elle est inférieure, la valeur courante devient la valeur retenue.

    Ne pas oublier d'initialiser la valeur retenue avant le début de la boucle.

    J'espère que tu ne fais pas une macro spécialement pour ça.
    Parce que si c'est le cas, il y a des solutions plus simple que de passer par du VBA.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    la fonction PETITE.VALEUR (SMALL() en anglais) permet d'obtenir la kieme plus petite valeur d'une plage

    en VBA, le minimum d'une plage de nombre positifs, en excluant 0, revient à obtenir l'avant dernier plus petit, c'est à dire la plus petite valeur de rang 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Small(Range(Cells(i, 27),Cells(i+3,27)), 2)

  4. #4
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut Méthode brutale
    Merci menhir pour ta réponse
    En effet, je cherche exclusivement du VBA, je continue mes recherches

  5. #5
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut Petite valeur
    Merci joe.levrai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.WorksheetFunction.Small(Range(Cells(i, 27),Cells(i+3,27)), 2)
    me renvoie ''Erreur de syntaxe''

  6. #6
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2017
    Messages : 10
    Par défaut Petite valeur
    De même, si j'ai plus d'un 0 dans la plage, ça me renvoie 0 quand même !

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

Discussions similaires

  1. [XL-2003] saisir des formules avec une plage variable de données
    Par nazaire dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/01/2011, 08h35
  2. [XL-2007] Moyennes d'une plage variable
    Par isfet dans le forum Excel
    Réponses: 1
    Dernier message: 18/08/2010, 14h32
  3. Somme sur une plage variable
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/08/2008, 13h40
  4. Appliquer une formule à une plage variable
    Par sophiefag dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/04/2008, 23h27
  5. Somme sur une plage variable
    Par mhamedbj dans le forum Excel
    Réponses: 2
    Dernier message: 29/02/2008, 15h56

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