Erreur d’exécution ‘91´ VBA, Excel 2013

GuiChar -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je tente de créer une fonction qui me permet de trouver le maximum entre des données d’une même colonne et de retourner la ligne correspondante au maximum. Ma difficulté est que la recherche se fait par segment de plage (d’une même colonne) qui sont variables. C’est quand j’intègre cette variabilité des plages de recherche du maximum que mon code présenté ci-après m’annonce « erreur d’exécution ´91’ variable objet ou variable de bloc With non définie » PS : je n’ai pas utilisé de With dans aucun de mes modules

L’idée est d’ensuite insérer ce code dans une plus grosse fonctionne qui fera varier m et n (ici dans les lignes m et n ne prennent pas de valeur mais en leur affectant une constante comme m = 2 et n = 6) le message d’erreur m’est renvoyé. Par contre si je mets directement « W2:W6 » je n’ai pas d’erreur.

Sub LigneMax()

Dim col as Range
Dim max as Range
Dim lig as Integer
Dim m as integer
Dim n as integer

Set col = Range(‘´W’’ & m & ‘´:W’´ & n)
Set max = Range (‘´W’’ & m & ‘´:W’´ & n).Find(WorksheetFunction.Max(col), , xlValues, wlWhole)
Msgbox « valeur max : » & max #c’est précisément cette Ligne qui est surlignee en jaune à l’annonce de l’erreur

If Not max Is Nothing then lig = max.Row
Msgbox lig & « : ligne max »

End sub



Merci d’avance pour votre aide !
Bonne journée
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pour commencer, merci à l'avenir d'utiliser les BALISES DE CODE pour poster du code sur le forum
Explications disponibles ici : https://forums.commentcamarche.net/forum/affich-37598670-mise-en-forme-du-forum-et-des-fiches-pratiques-ccm#les-codes-sources

Ensuite
Set col = Range(‘´W’’ & m & ‘´:W’´ & n)
Set max = Range (‘´W’’ & m & ‘´:W’´ & n).Find(WorksheetFunction.Max(col), , xlValues, wlWhole)


Où sont initialisées tes variables m, n col ? avec quelles valeurs ??


EDIT : Tu as aussi un PB de guillemets .. à croire que tu as fait un copier/coller depuis un document word...

A corriger par
Set col = Range("W" & m & ":W" & n)
Set max = Range ("W" & m & ":W" & n).Find(WorksheetFunction.Max(col), , xlValues, wlWhole)



0