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 :

Fonction Min en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Data Manager
    Inscrit en
    Octobre 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Data Manager
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 155
    Par défaut Fonction Min en VBA
    Bonjour,

    Je tourne en rond depuis un bon moment sans réussir à trouver mon erreur. Je pense qu'elle est tellement grosse que je n'arrive pas à la voir.

    J'ai un tableau rempli par une macro en VBA qui me donne les résultats attendus. La colonne E est remplie de nombres compris entre -3 et 3, certaines cellules sont vides. La première ligne est une ligne de titre. Le numéro de la première ligne vide de mon tableau est stocké dans la variable i.

    Je souhaite calculer la valeur minimale, maximale, la moyenne, l'écart-type, etc... de la colonne E.

    J'ai voulu commencer doucement par le calcul du min. Et j'ai bien fait puisque je n'y arrive pas !
    Je veux le résultat dans la cellule E,L_min de la feuille Résultats

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Plage = Range("E2:E" & i - 1)
    Sheets("Résultats").Range("E" & L_min).Value = Application.WorksheetFunction.Min(Plage)
    Et dans ma cellule, je trouve 42244 !

    Pouvez-vous me venir en aide et me dire où j'ai fait une boulette ???

    Merci d'avance !

    Laurent

  2. #2
    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,

    visiblement, tu tournes en rond sur un problème qui n'est pas l'endroit où tu le penses

    je n'ai aucun souci avec ton code :

    Nom : test.png
Affichages : 3647
Taille : 31,2 Ko

    i = 9 car c'est la première ligne vide de la colonne E

    42244 ça ressemble à un numéro de série de date : 28/08/2015
    Cela te donne une nouvelle piste d'étude ou pas ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Data Manager
    Inscrit en
    Octobre 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Data Manager
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 155
    Par défaut
    Ah !!! Merci pour cette réponse. C'est une version revisitée du gars qui cherche sa clé sous le lampadaire parce que c'est là qu'il y a de la lumière...

    Effectivement je n'ai pas pensé à tester mon code sur un autre exemple.

    J'ai pensé à un problème de format de donnée. Mais comment faire pour imposer un mode standard ?

    Voici les opérations faites sur ma colonne E :
    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
    Sheets("Résultats").Range("E1").Value = "P1 Après - P1 Avant : Intéressé"
     
    i = 2
     
    ' On parcourt toutes les lignes du fichier
    Do While Sheets(1).Range("A" & i).Value <> ""
     
        ' Calcul différence P1 Après - P1 Avant
        If (Sheets(1).Range("AB" & i).Value = "" Or Sheets(1).Range("F" & i).Value = "") Then
            Sheets("Résultats").Range("E" & i).Value = ""
        Else
            Sheets("Résultats").Range("E" & i).Value = Sheets(1).Range("AB" & i).Value - Sheets(1).Range("F" & i).Value
        End If
        i = i + 1
    Loop
    Les colonnes AB et F de la feuille 1 sont remplies de nombres.

    Merci !

    Laurent

  4. #4
    Membre confirmé
    Homme Profil pro
    Data Manager
    Inscrit en
    Octobre 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Data Manager
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2013
    Messages : 155
    Par défaut
    Ca y est !!! Quand je vous disais que c'était tellement gros que ça m'aveuglait !!!

    J'ai écrit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = Range("E2:E" & i - 1)
    sans préciser la feuille à prendre en compte !!!!!!!! Grrrr.... Punaise !!!

    En précisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = Sheets("Résultats").Range("E2:E" & i - 1)
    eh bien figurez vous que ça marche ! Dingue !!!

    Merci joe.levrai ! C'est cette histoire de format qui m'a mis la puce à l'oreille. Je viens de réaliser que dans ma 1ère feuille, la colonne E contenait... des dates... Tiens tiens...

    Bonne soirée et excellent week-end !
    Laurent

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

Discussions similaires

  1. Mise en place fonction Min avec Index VBA
    Par LorenzoN dans le forum Excel
    Réponses: 2
    Dernier message: 01/11/2014, 12h22
  2. création d'une fonction min sur vba
    Par lilou31330 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/12/2012, 23h14
  3. La fonction Min en VBA
    Par androginius dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2011, 15h54
  4. [XL-2007] Fonction min en VBA
    Par vivi4561 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2011, 15h40
  5. [XL-2003] Erreur avec la fonction Min dans VBA Excel
    Par Marymimo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/08/2009, 09h08

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