Bonjour,
Par défaut, FactOOor remet la numérotation des documents à 1 lors de chaque changement d'année ; j'imagine qu'il ne doit pas être bien difficile en éditant l'une ou l'autre macro de garder une numérotation continue d'année en année, seuls changeant le numéro de l'année et celui du mois.
J'ai bien tenté d'analyser le code de la macro AfCalc et j'imagine que la solution doit se trouver dans la routine 'ChangerMois()' mais je ne suis pas suffisamment 'calé' en macros pour comprendre ce qu'il faut modifier pour répondre à mon attente.
Quelqu'un peut m'aider ?
Merci d'avance et bonne journée
[Résolu] Numérotation continue des documents
Modérateur : Vilains modOOs
Règles du forum
FactOOor a été testé sur la version officielle de Openoffice. Le support technique sur FactOOor est donc assuré pour la version en cours et n'ayant subi aucun changement quant à son contenu (formulaire, rapport ou code macro).
FactOOor a été testé sur la version officielle de Openoffice. Le support technique sur FactOOor est donc assuré pour la version en cours et n'ayant subi aucun changement quant à son contenu (formulaire, rapport ou code macro).
-
- NOOuvel adepte
- Messages : 19
- Inscription : 27 févr. 2010 13:34
[Résolu] Numérotation continue des documents
Dernière modification par Flip le 07 mars 2010 22:20, modifié 1 fois.
Raison : Balisage RESOLU.
Raison : Balisage RESOLU.
OpenOffice 3.2 sur XP SP3
-
- ManitOOu
- Messages : 3223
- Inscription : 13 janv. 2006 16:21
- Localisation : Chasseneuil-du-Poitou / Futuroscope
Re: Numérotation continue des documents
Bonjour,
http://user.services.openoffice.org/fr/ ... 27&t=17877
A+
En attendant la réponse du concepteur de FactOOor, tu peux éventuellement faire ta suggestion dans ce fil :Marijani a écrit : garder une numérotation continue d'année en année, seuls changeant le numéro de l'année et celui du mois.
http://user.services.openoffice.org/fr/ ... 27&t=17877
A+
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
-
- Membre hOOnoraire
- Messages : 121
- Inscription : 30 nov. 2006 13:28
- Localisation : Chambéry (73)
Re: Numérotation continue des documents
Hello,
ci j ai bien compris ton ptit souci, modifies la macro changer mois tel quel et ça devrait répondre à tes attentes.
lorsque tu mets une apostrophe devant la ligne, la macro en cours d'éxecution saute cette ligne et ne tiens compte du code.
@+
Nicolas.
ci j ai bien compris ton ptit souci, modifies la macro changer mois tel quel et ça devrait répondre à tes attentes.
Code : Tout sélectionner
Sub ChangerMois()
REM appel sur ouverture du fichier
REM regarde si le mois en cours à changer depuis la dernière utilisation
REM si oui réinitialse la numérotation des factures, avoirs et devis
REM vérifie la présence du répertoire FactOOorPDF, le crée si il le faut
Dim mois as Integer
Dim monDoc as Object, monForm as Object
Dim leDossier as String
REM appel de la procédure qui construit le quadrillage principal - Facture /
modeleDeBase
VerifierSource
VerifierBase
monDoc = thisComponent
maFacture = monDoc.Sheets.getByName("Facture")
If monDoc.CurrentController.ActiveSheet.Name <> "Facture" Then
monDoc.CurrentController.ActiveSheet = maFacture
End If
mois = month(now)
' If CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 2, 2)) = CInt(Mid(CStr(year(now)), 3,2)) Then
' If CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 4, 2)) < mois Then
' maFacture.getCellRangeByName("Q18").setValue(1)
' ElseIf CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 4, 2)) = mois Then
' maFacture.getCellRangeByName("Q18").setValue(CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 7)) + 1)
' End If
' Else
' maFacture.getCellRangeByName("Q18").setValue(1)
' End If
' If CInt(Mid(ChercherDernierDoc("TDevis", "NumeroDevis"), 2, 2)) = CInt(Mid(CStr(year(now)), 3,2)) Then
' If CInt(Mid(ChercherDernierDoc("TDevis", "NumeroDevis"), 4, 2)) < mois Then
' maFacture.getCellRangeByName("Q19").setValue(1)
' ElseIf CInt(Mid(ChercherDernierDoc("TDevis", "NumeroDevis"), 4, 2)) = mois Then
' maFacture.getCellRangeByName("Q19").setValue(CInt(Mid(ChercherDernierDoc("TDevis", "NumeroDevis"), 7)) + 1)
' End If
' Else
' maFacture.getCellRangeByName("Q19").setValue(1)
' End If
' If CInt(Mid(ChercherDernierDoc("TAvoir", "NumeroAvoir"), 2, 2)) = CInt(Mid(CStr(year(now)), 3,2)) Then
' If CInt(Mid(ChercherDernierDoc("TAvoir", "NumeroAvoir"), 4, 2)) < mois Then
' maFacture.getCellRangeByName("Q20").setValue(1)
' ElseIf CInt(Mid(ChercherDernierDoc("TAvoir", "NumeroAvoir"), 4, 2)) = mois Then
' maFacture.getCellRangeByName("Q20").setValue(CInt(Mid(ChercherDernierDoc("TAvoir", "NumeroAvoir"), 7)) + 1)
' End If
' Else
' maFacture.getCellRangeByName("Q20").setValue(1)
' End If
monForm = maFacture.Drawpage.Forms.getByName("FormFacturier")
REM appel de la procédure de choix d'un item - Facture /
ChoisirItemListe(monForm, "ListBoxDoc", " FACTURE")
REM appel la fonction de recherche du répertoire courant - Facture /
leDossier = DossierCourant(monDoc) & "FactOOorPDF"
If Dir(leDossier,16) = "" Then
MkDir leDossier
End If
monDoc.CurrentController.getControl(monForm.getByName("ComboBoxProd")).setText("")
'CreerStatistiques
'TotalFactAttente
End Sub
@+
Nicolas.
OoO 3.0.1 XP home SP3
-
- NOOuvel adepte
- Messages : 19
- Inscription : 27 févr. 2010 13:34
Re: Numérotation continue des documents
Bonsoir et merci à Nicolas pour ses pistes ;
en fait, c'était bien comme tu le proposais sauf qu'il faut quand même laisser la ligne qui assigne le numéro de la facture, indépendamment du mois et de l'année : le code de la macro devient alors :
Et la même modification pour les devis et les avoirs
Encore merci et bonne semaine à tous !
Le sujet peut être marqué comme résolu
en fait, c'était bien comme tu le proposais sauf qu'il faut quand même laisser la ligne qui assigne le numéro de la facture, indépendamment du mois et de l'année : le code de la macro devient alors :
Code : Tout sélectionner
If monDoc.CurrentController.ActiveSheet.Name <> "Facture" Then
monDoc.CurrentController.ActiveSheet = maFacture
End If
mois = month(now)
' If CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 2, 2)) = CInt(Mid(CStr(year(now)), 3,2)) Then
' If CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 4, 2)) < mois Then
' maFacture.getCellRangeByName("Q18").setValue(1)
' ElseIf CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 4, 2)) = mois Then
maFacture.getCellRangeByName("Q18").setValue(CInt(Mid(ChercherDernierDoc("TFacture", "NumeroFacture"), 7)) + 1)
' End If
' Else
' maFacture.getCellRangeByName("Q18").setValue(1)
' End If
Encore merci et bonne semaine à tous !
Le sujet peut être marqué comme résolu
Dernière modification par Flip le 07 mars 2010 22:19, modifié 1 fois.
Raison : Balisage CODE
Raison : Balisage CODE
OpenOffice 3.2 sur XP SP3