Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Le jeu des 7 erreurs

yubstart

XLDnaute Nouveau
Bonjour,

Est-ce-que quelqu'un pourrait m'expliquer pourquoi, dans le code suivant, les procédures donnent des valeurs de "max" différentes?
J'ai beau chercher je me sens tout bête.
La première procédure me donne le résultat attendu, mais vous vous en doutez, j'aurais besoin d'utiliser la seconde version afin de l'insérer dans une procédure plus complexe où la plage change fréquemment.


PHP:
Sub somme_du_mois_version1()  
    max= Application.WorksheetFunction.Max(Range("a1", Range("a65536").End(xlUp)))
    MsgBox Format(max, "mm/yyyy")    
end sub

Sub somme_du_mois_version2()      
    plage = Range("a1", Range("a65536").End(xlUp))
    max= Application.WorksheetFunction.Max(plage_mois_teste)
    MsgBox Format(max, "mm/yyyy")
End Sub

Si quelqu'un passe dans le coin, et peut me donner un petit coup de pouce, je lui en serais reconnaissant.
 

kiki29

XLDnaute Barbatruc
Re : Le jeu des 7 erreurs

Salut,Hum Hum ... remplace Plage_Mois_Teste par Plage ....
evite aussi d'utiliser des noms de variables qui sont des mots réservés : max , utiliser Maxi par exemple
 

yubstart

XLDnaute Nouveau
Re : Le jeu des 7 erreurs

désolé, pour être plus clair dans mes explications et comme c'est un extrait de code, j'ai cru bon de simplifier. Le code que j'utilise est le suivant
PHP:
Sub somme_du_mois()
       


    selection_plage_date = Application.WorksheetFunction.Max(Range("B11", Range("b65536").End(xlUp)))
    MsgBox Format(selection_plage_date, "mm/yyyy")
    
    
    plage_mois_teste = Range("B11", Range("b65536").End(xlUp))
    selection_plage_date1 = Application.WorksheetFunction.Max(plage_mois_teste)
    MsgBox Format(selection_plage_date1, "mm/yyyy")
End Sub
Où la colonne b contient des dates sour la forme mm/yyyy Le problème reste entier
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Re : Le jeu des 7 erreurs

Ca semble pour le moins étonnant.

Quels sont les deux résultats que tu obtiens ?


[edit]
Arf, oui, je viens de tester et j'ai effectivement deux résultats différents car dans le deuxième cas on a toujours 0 (zéro).
C'est peut-être la ligne plage_mois_teste = Range("B11", Range("b65536").End(xlUp)) qui n'a pas la syntaxe exacte.
[/edit]
 
Dernière édition:

yubstart

XLDnaute Nouveau
Re : Le jeu des 7 erreurs

Bonjour,

Admettons que dans la colonne B la date la plus récente soit le 03/2011
premier message : 03/2011
deuxième message : 12/1899

la première est bonne, la deuxième a l'air de sortir du fond de l'enfer et n'a aucun rapport avec les données
 

Cousinhub

XLDnaute Barbatruc
Re : Le jeu des 7 erreurs

Bonjour,
une autre façon, regarde le code :

Code:
Sub somme_du_mois()
    Range("B11", Range("b65536").End(xlUp)).Name = "plage_mois_teste"
    selection_plage_date1 = Application.WorksheetFunction.Max([COLOR="Red"][[/COLOR]plage_mois_teste[COLOR="Red"]][/COLOR])
    MsgBox Format(selection_plage_date1, "mm/yyyy")
End Sub

Attention aux crochets, plage_mois_teste est devenu une zone de cellules
 

TooFatBoy

XLDnaute Barbatruc
Re : Le jeu des 7 erreurs

Ah ben voilà, Bhbh a trouvé la solution.

Perso j'avais trouvé ça :
plage_mois_teste = Range("B11", Range("b65536").End(xlUp)).Address()
selection_plage_date1 = Application.WorksheetFunction.Max(Range(plage_mois_teste))
MsgBox Format(selection_plage_date1, "mm/yyyy")
 
Dernière édition:

yubstart

XLDnaute Nouveau
Re : Le jeu des 7 erreurs

Eh bien merci,

c'est mon jour de chance deux solutions pour le même problème. Et je pense en avoir compris la raison en plus.
Je vais boire un coup à votre santé sur la plage
 

Discussions similaires

Réponses
2
Affichages
379
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…