Plage vers Tableau

Résolu/Fermé
Jolafleche - Modifié par Jolafleche le 7/10/2015 à 09:59
 Jolafleche - 7 oct. 2015 à 11:57
Bonjour,

Je début en VBA, et j'ai besoin de créer une fonction qui me permet de m' indiquer quelle fiche est absente du registre. Pour cela j'ai créer une fonction...mais je bloque sur l'attribution de mon arguments dans un tableau si quelqu'un peut m'aider merci....:-D

Public Function territoire_manquant(plage_date As Range, plage_fiche As Range)


Dim cel_date, valeur As String
Dim cel_fiche() As String


Dim i As Integrer


cel_fiche = plage_fiche.Value


For Each cel_date In plage_date

If IsEmpty(cel_date) Then
valeur = cel_fiche(i) & "||" & valeur

i = i + 1

Next cel_date

MsgBox valeur

End Function



J'ai donc une erreur #VALUE ....je me doute que l'attribution de cel_fiche est incorrect car que je fait un msgbox cel_fiche, cela ne me retourne rien....

Merci pour votre aide.
Cordialement
A voir également:

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
7 oct. 2015 à 11:05
Bonjour,

Je crois qu'on part de loin...
- il n'y a pas de End If
- i n'est pas initialisé
- comment lie-t-on cel_date à cel_fiche ?
- comment appelles-tu la fonction ?
- faut-il une fonction ou une procédure (Sub) ?

Je pense qu'il vaut mieux commencer de zéro avec les données dont tu disposes et l'expression de ton besoin ("détecter les fiches absentes de ton registre" est un bon premier pas, mais on ne connait pas ta structure de données). Pour ce faire, peux-tu partager ton fichier via https://www.cjoint.com/ ?

A+
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
7 oct. 2015 à 11:14
Bonjour,

Je ne comprend rien. i n'a pas été défini. cel_fiche(i) ne veut rien dire puisque i n'est rien.

cel_date et cel_fiche n'ont rien à voir pour l'instant...

Cordialement.
0
Merci pour ta réponse rapide, je débute en VBA mais ce n'est pas mon premier language ;-)

Du coup j'ai oublié en effet le Endif et l'initialisation de "i", des erreurs bêtes j'en suis conscient...!

Par contre, cel_date et cel_fiche ne sont pas lié vu que se sont 2 plages différentes....Ou alors mon raisonnement est faux.

J'apelle la fonction via une celulle sur le classeur.

Le lien vers le classeur http://www.cjoint.com/c/EJhjG0KImJ8
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
7 oct. 2015 à 11:51
Public Function fiche_manquant(plage_date As Range, plage_fiche As Range)

Dim valeur As String

    For Each cel_date In plage_date
        If IsEmpty(cel_date) Then
           valeur = valeur & cel_date.Offset(0, -5).Value & "||"
        End If
       
    Next cel_date

MsgBox valeur
fiche_manquant = valeur
End Function


L'appel de la fonction est bon, c'est déjà ça. Je te laisse supprimer l'argument plage_fiche qui n'est plus utilisé dans la fonction.
0
Ah bah oui bien sur, je me cassais la tête avec 2 plage, mais simplement en me déplaçant sur la feuille cela fonctionnais....!!

Merci beaucoup Zoul67 !
0