Suivi des facturations sous Excel

Un autre problème se pose à moi.
Pour le moment, ma facture porte un numéro “aléatoire” alors que la législation impose d’incrémenter ce numéro de 1 à chaque fois.
J’aimerais donc avoir un numéro de facture comme celui-ci :
Pour un facture en date du 17/09/07, le n° serait 20070901
Le second client de la journée aurait 20070902, etc…
J’ai essayé de scinder les deux cellules I15 et J15 et de mettre dans I15 la date au format yyyymm et dans J15 un numéro rentré manuellement, ça ne marche pas ensuite quand j’utilise la macro d’enregistrement.
Quelqu’un pourrait m’aider ?
Edité le 21/11/2007 à 08:50

Tu peux faire en deux cellules, mais c’est aussi pratique en une seule.
Par contre, ton idée est bonne : tu composes d’abord le radical en fonction de la date, puis la partie incrémentale. Ensuite, tu les concatènes.
Pour savoir la valeur à laquelle tu es rendu, il suffit que tu consultes la dernière entrée de ton RecapAnnée;
Si les radicaux sont égaux, tu incrémentes de 1, sinon tu forces à 1

Oui, mais le souci, c’est que je n’ai pas réussi à mettre tout ça en pratique !

Il y a une parenthèse en trop dans le premier de tes deux liens.

Merci Jacky67, c’est corrigé

Autre remarque : n’y a-t-il pas une erreur de nom de fichier dans le deuxième fichier ZIP :
Facturation_Pro.xls au lieu de Facturation_Part.xls ???

En tout cas, quand j’ouvre le fichier Facturation_Pro.xls, il y a un message car il y a une référence à un autre classeur, apparemment nommé Facturation_Part.xls.
Edité le 18/09/2007 à 02:29

Il y avait effectivement une erreur, c’est réparé !

Tu bloques où ?

NB: à propos des fichiers que tu mets dans ton lien : travaille plutôt avec des xls qu’avec un xlt

Le XLT est un modèle utilisé par la macro du XLS.
En fait, lorsque j’ai mes deux cellules avec dans I15 la date (yyyymm) et dans J15 le numéro de facture que je rentre moi-même, la macro d’enregistrement plante.

Au moment où ca plante, ca doit te montrer la ligne et un message d’erreur. Tu peux dire lesquels ?
et donner les valeurs et le type des variables utilisées dans cette ligne au moment du plantage.
Normalement, en passant ta souris dessus, tu as la valeur, sinon tu utilises la fenêtre d’affichage immédiat

While (Cells(LigTemp, ColDeb).Value > FaNum) And (LigTemp >= LigDeb)

FaNum = Variant (1 to 2)
: FaNum(1,1) : #18/09/2007# : Variant/Date
: FaNum(1,2) : 1 : Variant/Double

Et tu n’as pas de message d’erreur ?
Vérifie également que LigTemp, Coldeb ne sont pas nuls.

EDIT : Fanum, c’est un tableau de valeurs ?
Edité le 18/09/2007 à 20:11

Non, FaNum, c’est le numéro de facture.

J’ai essayé avec le fichier que tu donnes en exemple : quand on rentre manuellement un numero de la forme yyyymmxx, ca ne plante pas.
Mais Ca c’est quand on met le tout dans la même cellule, parce que je n’ai pas vu de code qui concatène le contenu de deux cellules (d’ailleurs elles sont fusionnées)

Oui, demain matin, je renvois le bon fichier. C’est quand les cellules ne sont pas fusionnées que ça déconne.

Ca y est, le bon fichier est en ligne.

Tu as plusieurs problèmes :
1- dans ta fonction Enregistrement :
FactNum = Range(“Numfact”)
ne peut pas fonctionner, puisque Numfact correspond à plusieurs cellules
Il faut que tu “construises” ta variable en concaténant le contenu des cellules composant ton range

2- Dans tes 2 feuilles de calcul
Les cellules contenant le numero de facture ne peuvent plus être au format date, sinon tu cours tout droit au dépassement de capacité, (ou à l’incohérence de type)

Après, ca devrait marcher

J’ai essayé en concaténant, mais dans ce cas, le format date n’est plus respecté.
Quant à ta seconde remarque…rien compris !

Il n’y a aucune raison pour que le format date ne soit pas respecté, puisque c’est toi qui décides du résultat final.
Mais quand tu dis format, je suppose que tu penses à la façon dont la date se présente.
Parce qu’effectivement, ca ne pourra pas être un format date au sens strict (la cellule ne pourra plus être formatée date).

Pour ce qui est de la deuxième remarque, c’est exactement le même problème : là où tes cellules sont au format date, tu vas avoir un refus si tu tentes d’y entrer une chaine de caractères ou un nombre qui ne représente pas une date.

Tu peux donner la formule que tu utilises pour concaténer, et aussi la forme de résultat que tu souhaites atteindre ?

Pour concaténer, j’utiliser =I15&J15

J’aimerai avoir le résultat suivant : 20070901 pour la première facture de Septembre 2007, 20070902 pour la seconde, etc…