Erreur "91" : Object variable or with block variable not set

klm1234

XLDnaute Nouveau
Bonjour la communauté!

Voilà je me suis fait une petite macro qui permet de me retourner l'addresse d'une cellule lorsqu'elle correspond à un code produit (imo : un texte, peu importe).

Voici donc le code :

Code:
Private Function Finder(ByVal prcode$) As Range
    Dim sAdd$
    Dim Counter
    
    Counter = 0
        
    
            If (prcode <> "") Then
                For Each cel In ActiveSheet.Range("D:D").Cells
                    If (Trim(UCase(cel.Value)) = Trim(UCase(prcode))) Then
                        Finder = cel.Address
                        Counter = Counter + 1
                    End If
                Next
'                    sAdd = Replace(sAdd, "$", "")
                        Select Case Counter
                            Case 0
                                GoTo 1
                            Case Else
                                Exit Function
                        End Select
            Else: GoTo 2
            End If
        Exit Function
1 MsgBox "A wrong product code was specified in Finder() or no product code found.", vbCritical, "Error"
    Exit Function
2 MsgBox "An unhandled error occured in Finder().", vbCritical, "Error"
    Exit Function
End Function

Si quelqu'un pouvait m'éclairer sur le problème... L'erreur advient lorsque j'essaie d'assigner l'adresse de la cellule à la fonction "Finder()", ligne 11. J'ai fait quelque recherche, j'ai lu des trucs sur les variables publique, l'assignation d'une liaison "tardive" ou ce genre d'explication qui ne m'as pas été très utile pour l'instant... Je m'en remet donc à vous, Ô exceleurs de talents!
 

klm1234

XLDnaute Nouveau
Re : Erreur "91" : Object variable or with block variable not set

Merci de ta réponse!
Apparemment le problème à l'air d'être régler pour cette macro, là c'est la deuxième étape qui marche pas :p

Code:
Private Function ValidateForm(ByVal prcode$) As Boolean

    'Check CNumber
    If (Finder(prcode).Value) = "" Then
            MsgBox "The customer number is empty. Please specify one.", vbExclamation, "Error - Unvalid form"
        ValidateForm = False
        Exit Function
    End If
    
    ValidateForm = True

End Function

Ligne 4, le message d'erreur est "Invalid Qualifier"... ??


Merci encore!
 

mromain

XLDnaute Barbatruc
Re : Erreur "91" : Object variable or with block variable not set

Re,

Normal, car maintenant ta fonction Finder te renvoie un String.
Donc sur ta ligne 4, Finder(prcode).Value renvoie une erreur, car un "String ne possède pas de .Value".
N'ayant qu'une vision limitée du problème (des bouts de codes à droite à gauche), je dirais essaye en enlevant le .Value, la macro ne devrait plus buger, mais je ne suis vraiment pas sur du bon fonctionnement de celle-ci (qu'elle te renverra ce que tu attends)...

En effet, ton ancienne version de la fonction Finder te renvoyait une cellule. Dans cette macro ValidateForm, tu as besoins de la valeur de la cellule retournée par la fonction Finder.

Hors, ta nouvelle fonction Finder te renvoie une adresse de cellule.

a+
 
Dernière édition:

klm1234

XLDnaute Nouveau
Re : Erreur "91" : Object variable or with block variable not set

Je viens de revoir ma macro et c'est bon tout fonctionne, et dire que j'ai faillis m'énerver... Des fois à tête reposer on y voit plus clair!!

Merci encore mille fois, topic clos!
 

smotty

XLDnaute Occasionnel
Re : Erreur "91" : Object variable or with block variable not set

Bonjour,

Etant donné que finder retourne un objet Range, mettre:

set Finder=cell

Souci selon moi, vous êtes dans un boucle et la fonction retourne déjà une valeur?, je ne suis pas sûr que ça continue la boucle.

Voici qq pistes:

Pour avoir le nombre d'éléments dans la colonne:

Code:
n = WorksheetFunction.CountIf(Range("D:D"), prcode)

Et pour avoir la cellule contenant une valeur:

Code:
dim C as range

set C=range("D:D").find(prcode,,xlvalues,xlwhole)

Edit: j'arrive trop tard

cdt

smotty
 

Discussions similaires

Réponses
19
Affichages
2 K

Statistiques des forums

Discussions
312 792
Messages
2 092 151
Membres
105 238
dernier inscrit
kptia.