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 :

Rechercher valeur Mini dans variable tableau (array)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut Rechercher valeur Mini dans variable tableau (array)
    Bonjour,
    Lorsque je souhaite rechercher la valeur mini d'une variable tableau, j'ai la valeur 0 qui ressort.
    Voici ma méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub TestMin()
    Dim test(0 To 2) As Double
    test(0) = 7.45
    test(1) = 2.79
    test(2) = 4.5
    With Application.WorksheetFunction
        Debug.Print "Min test: " & .Min(test) ' affiche 0 ?
    End With
    End Sub
    Pourtant si j'affiche la valeur Max j'ai bien 7.45 qui ressort.

    Avez vous une idée?
    Merci beaucoup

  2. #2
    Invité
    Invité(e)
    Par défaut Bonjour, regarde ç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 TestMin()
    Dim test(0 To 2) As Double
    test(0) = 7.45
    test(1) = 2.79
    test(2) = 4.5
        Debug.Print "Min test: " & MyMin(test) ' affiche 0 ?
        Debug.Print "Max test: " & MyMAx(test) ' affiche 0 ?
    End Sub
    Function MyMin(v) As Double
    Dim I As Long
    For I = 0 To UBound(v)
        If MyMin > CDbl(v(I)) Or MyMin = 0 Then MyMin = CDbl(v(I))
    Next
    End Function
    Function MyMAx(v) As Double
    Dim I As Long
    For I = 0 To UBound(v)
        If MyMAx < CDbl(v(I)) Or MyMAx = 0 Then MyMAx = CDbl(v(I))
    Next
    End Function

  3. #3
    Expert éminent
    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
    Par défaut
    Bonjour.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Demo()
        Test = Array(7.45, 2.79, 4.5)
        Debug.Print "Min test: " & Application.Min(Test)
    End Sub
    Cela me renvoie bien 2.79 …

    Edit : le code de jojo86 fonctionne bien tel quel sous Excel 2003 …

    __________________________________________________________________________________________

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

  4. #4
    Invité
    Invité(e)
    Par défaut
    autant pour moi
    Dernière modification par AlainTech ; 23/07/2013 à 06h45. Motif: Suppression de la citation inutile

  5. #5
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    Bonjour,
    Merci de votre aide.
    Ma variable est une variable dynamique qui est renseignée en parcourant des cellules d'une feuille.

    Pour remplir la variable je fait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To 3
        test(i) = Cells(i+1,2) 
    Next i
    Comment faire pour remplir la variable de cette manière : Merci !

  6. #6
    Membre éprouvé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Par défaut
    J'ai un gros soucis... Peut être est-ce lié au surmenage...

    J'ai encore 0 avec la fonction que tu m'as donné...
    Mon code de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub TestMyMin()
    Dim i As Integer
    Dim Test() As Double
    ReDim Test(0) 'Initialise la variable
     
    For i = 1 To 3
        ReDim Preserve Test(UBound(Test) + 1) 'j'ajoute une ligne dans la variable
        Test(UBound(Test) - 1) = i 
    Next i
     
    Debug.Print MyMin(Test) ' =0...
    End Sub
    Je ne pige plus rien...
    Merci de votre aide.

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    normal...

    Min(0,1,2,3)=0

  8. #8
    Expert éminent
    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
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Pour remplir la variable je fait quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 0 To 3
        test(i) = Cells(i+1,2) 
    Next i
    Comment faire pour remplir la variable de cette manière : Merci !
    Donc là on a un tableau de quatre indices de B1 à B4 pouvant s'alimenter directement par Test = [B1:B4] ,

    comme s'il avait été dimensionné ainsi : Dim Test(1 to 4, 1 to 1)
    Normal car la source est bien de quatre lignes sur une seule colonne.

    Sinon Test = Application.Transpose([B1:B4]) afin de n'avoir qu'une seule dimension de 1 à 4 …

    Entre les deux, tout dépend de l'utilité réelle de la variable tableau.

    Pour le reste, sans voir plus de code ni de claires explications …

    __________________________________________________________________________________________

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


    __________________________________________________________________________________________
    L'expérience, c'est une connerie par jour, mais jamais la même …

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 28/04/2015, 18h28
  2. [MySQL] les caractères accentués renvoient une valeur "null" dans un tableau array
    Par olivier8064 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 21/12/2012, 16h09
  3. recherche valeur max dans un tableau
    Par www.rubis dans le forum Langage
    Réponses: 4
    Dernier message: 31/01/2011, 17h43
  4. Valeur mini dans un tableau
    Par nicolasferraris dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/04/2009, 09h23
  5. Faire une recherche de texte dans un tableau de variable
    Par alexxx69 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2006, 13h12

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