Inclure RechercheV et condition pour fonction personnalisée Excel

DoDwDn_ Messages postés 12 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 2 mars 2009 - 18 déc. 2008 à 15:24
DoDwDn_ Messages postés 12 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 2 mars 2009 - 29 déc. 2008 à 17:14
Bonjour à tous !

Je souhaite obtenir un peu d'aide pour une fonction personnalisée Excel.

Je vous demande un peu d'indulgence, car je suis débutant en vba, et je pense que certains vont se tirer les cheveux en lisant ce que j'ai fait !

L'objectif de ma fonction est d'extraire sous condition soit l'index 59 de la ligne correspondant au matricule sélectionné, soit l'avant dernière cellule non vide de la ligne concernée.

"matricule" correspond au nom de la cellule qui contient le matricule (B15 dans mon cas, sachant que la fonction sera indentée)

Voici mon code : (qui me renvoie une valeur d'erreur)

Function datercc(matricule As Range) As Date

Dim i As Range
Dim j As Range


' Sélectionne la cellule du matricule recherché dans la table de recherche
    i = Range("=VLookUp(matricule;'[M:\XXXX\User\Base De Données 1.xls]Base Relevé'!$1:$65536 ;1)").Select
   
' Sélectionne l'avant-dernière cellule non vide de la ligne correspondante à "i"
    j = Range(i).End(xlToRight) - 1


If "=VLookup(matricule;'[M:\XXXX\User\Base De Données 1.xls]Base Relevé'!$1:$65536;59)" <> 0 Then
        datercc = "=VLookUp(matricule;'[M:\XXXX\User\Base De Données 1.xls]Base Relevé'!$1:$65536;59)"
    Else
        datercc = "VLookUp (matricule;'[M:\XXXX\User\Base De Données 1.xls]Base Relevé'!$1:$65536; j)"
    End If
End Function

J'espère que vous pourrez me lire, me comprendre et m'aider !

Cordialement,

Benjamin

4 réponses

thome76 Messages postés 47 Date d'inscription mardi 16 décembre 2008 Statut Membre Dernière intervention 5 juin 2009
18 déc. 2008 à 16:40
C'est quoi le problème ... En effet tu n'as pas parler de ton problème (erreur technique la fonction ne fait pas ce qu'il faut...)
0
DoDwDn_ Messages postés 12 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 2 mars 2009
18 déc. 2008 à 17:12
En fait, le code indiqué me renvoie une valeur d'erreur (#Valeur!), et je ne sais pas où se situe l'erreur.

Je sais juste que la déclaration de ma variable "j" est fausse, puisque je souhaite qu'elle soit sélectionnée, mais l'éditeur n'accepte pas l'ajout d'un ".Select".
0
DoDwDn_ Messages postés 12 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 2 mars 2009
22 déc. 2008 à 15:28
Un p'tit up !

Sinon, je pense que je vais passer par une autre solution, moins propre, où je vais créer plusieurs conditions IF, et si le champ est vide, passe au champ précédent...

Pas terrible, mais fonctionnel...
0
DoDwDn_ Messages postés 12 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 2 mars 2009
29 déc. 2008 à 17:14
Je reviens vers vous, car la modification apportée me pose un autre problème !

Finalement, je ne conserve pas l'historique des dates, raison pour laquelle il y avait tant de colonnes.
Voici les informations que j'ai conservées :
matricule / date RC-1 NB / Nbre RC-1 NB / Date RC NB / Nbre RC NB + les 4 colonnes suivantes comme les précédentes, avec "C" au lieu de "NB" ("Couleur" et "Noir et Blanc").

Du coup, avec mon tableau de saisie, je dois :
1° vérifier si un nouveau compteur à été saisi (G21 pour la date et H21 pour le nombre, la ligne 21 étant ma première ligne de saisie, la dernière étant 201)
2° si c'est le cas, dans le tableau "base relevé" : coupe les Date RC et Nbre RC pour les passer en "-1" (décalage négatif de 2 colonnes)
                           dans le tableau de saisie : copie les infos saisie dans Date RC et Nbre RC à la place des infos précédentes
3° si ce n'est pas le cas, ou une fois les infos saisies, passe à la ligne suivante et ce pour toutes les lignes où C21:C201 <> 0

Je vous avoue que, même si ça s'améliore, j'ai du mal avec les variables, et je sais qu'ici elles seront inévitables.

Je compte sur vous, car j'ai besoin de vous pour m'améliorer !

Merci d'avance !
0
Rejoignez-nous