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 :

Trouver le Maximum de cellules nommees sur VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut Trouver le Maximum de cellules nommees sur VBA
    Bonjour, j'ecris une fonction qui requiere de prendre la valeur maximale de plusieurs cellules nommees. mais ma fonction Max est source d'erreur, quel qu'un peut il m'aider?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Max_ID As String  
    Max_ID = Application.Max(Range("Cas_ID1"), Range("Cas_ID2"), Range("Cas_ID3"), Range("Cas_ID4"), Range("OH-ID"))

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Le nom attribué à la dernière cellule n'est-il pas "OH_ID" au lieu de "OH-ID" ?
    Cordialement
    Claude

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Bien vue Papouclo merci, mais ce nest pas la ou est l'erreur, en fesant mon calcul VBa me renvoi a une erreur de compilation disant: " Instruction incorecte a l'exterieur d'une procedure" et surligne "Cas_ID1"

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    as-tu essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Max_ID = Application.Max(Union(Range("Cas_ID1"), Range("Cas_ID2"), Range("Cas_ID3"), Range("Cas_ID4"), Range("OH-ID")))
    sinon il faudrait connaître ce que représente tes cellules nommées et leurs valeurs car tu as déclaré "Max_ID" en String
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Merci casefayere Union n'as pas marche. tous les cellules nommees ont comme valeur des nombres: 27;28;1;1 et 16
    dans ma fenetre d'execution Cas_ID1 donne bien 27
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ?Range("Cas_ID1").Value
     27

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

    juste pour signaler que Max ne travaille qu'avec des valeurs numériques

    mais pas avec des nombres saisis dans des cellules au format texte …


    EDIT
    : le code du premier post fonctionne sans souci sous Excel 2003 …


    __________________________________________________________________________________________

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

  7. #7
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Marc, peut etre avez vous le bon raisonnement, pouvez developpez svp je ne suis pas sur de comprendre.

  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
    En fait votre code de départ fonctionne sans souci sur Excel 2003, même avec des cellules au format texte ! …


    __________________________________________________________________________________________

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


    __________________________________________________________________________________________
    Ikéa est le meilleur prénom pour une femme : suédoise, bon marché, à emmener aussitôt chez soi et facile à monter !

  9. #9
    Membre habitué
    Inscrit en
    Juillet 2013
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 12
    Par défaut
    Volia qui est troublant. Que dois-je faire, j'utilise Excel 2007.

  10. #10
    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
    Je vais tester ce soir ou demain sur Excel 2007 sauf si d'ici là la solution est trouvée …

    Précision sur 2003 : fonctionne même avec des formats de cellules numérique & texte !

  11. #11
    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
    Je ne vais pas avoir accès en fait à une version 2007 avant la fin de la semaine …

    En attendant, voici une p'tite fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function MaxNoms(ParamArray AD())
             ReDim AR(UBound(AD))
             For R% = 0 To UBound(AD):  AR(R) = Range(AD(R)).Value:  Next
             MaxNoms = Application.Max(AR)
    End Function
    Appel de la fonction : Max_ID = MaxNoms("Cas_ID1", "Cas_ID2", "Cas_ID3", "Cas_ID4", "OH_ID")


    __________________________________________________________________________________________

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


    __________________________________________________________________________________________
    Jeanne d'Arc s'est éteinte le 30 mai 1431, environ deux heures après sa mort …

  12. #12
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Testé sur 2007 : Ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Max_ID As String
    Max_ID = Application.Max(Range("Cas_ID1"), Range("Cas_ID2"), Range("Cas_ID3"), Range("Cas_ID4"), Range("OH_ID"))

  13. #13
    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
    Merci Docmarti !

    Donc ce n'est ni le code ni la version qui est en cause …

    fares paris, dans l'environnement VBA, quelles références sont cochées ? (via le menu Outils)

    Et depuis la feuille de calcul, idem pour les macros complémentaires …

    Où se trouve le code ? Car maintenant le message d'erreur dans le troisième post me laisse un énorme doute …

  14. #14
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonne question. Où se trouve le code ?

    Le code suivant produit le message d'erreur "Instruction incorrecte à l'extérieur d'une procédure"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Max_ID As String
    Max_ID = Application.Max(Range("Cas_ID1"), Range("Cas_ID2"), Range("Cas_ID3"), Range("Cas_ID4"), Range("OH-ID"))
     
    Sub tt()
    Stop
    End Sub

Discussions similaires

  1. trouver la derniere cellule occupee sur la derniere ligne du "plage"
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/11/2007, 22h31
  2. Reference a une cellule sur VBA
    Par nicoroth dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/07/2007, 12h39
  3. [VBA-E]Trouver et recopier des cellules d'une feuille à une autre
    Par sk8bcn dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/08/2006, 16h01
  4. [VBA-E] cellules vide sur une ligne
    Par bricereyem dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 12/06/2006, 21h20
  5. [VBA-E]coordonnées de la derniere cellule marqué sur excel
    Par amelhog dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/02/2006, 19h39

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