[Résolu] Modifier numéro et paramètre d'enregistrement

Discussion et problème sur le facturier pour Auto-entrepreneur réalisé sous OpenOffice et ses dérivés

Modérateur : Vilains modOOs

maxime14000
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 23 mars 2019 21:49

[Résolu] Modifier numéro et paramètre d'enregistrement

Message par maxime14000 »

Bonjour a tous,

je me permet d'ouvrir un sujet sur un problème précis mais qui fait parti d'un projet global et qui correspond a créer un formulaire de saisie de caisse journalière pour restaurant bar ect (chr) avec reporting mensuel, annuel, graphique ect.
en utilisant plusieurs fichier mis a disposition gentiment par des utilisateurs du forum soucieux de partager leurs expériences, j'ai eu le declic sur un fichier en particulier et bien connu du forum qui est le micro facturier! Tout y est comme par magie.

Depuis le temp que je travaille dessus et en lisant sur le forum, j'ai réussit a pratiquement tout adapter (sauf les stats encore), tout le code a été adapté pour l'utilisation d'une caisse journalière, mensuel, annuel. mais il me reste un problème de base sur l'enregistrement et j'ai besoin de votre aide.

dans le micro facturier l'ors de l'enregistrement d'un devis ou d'une facture le code créer un numéro (comme une ref) celui ci est copier dans la feuille des devis ou factures et sert a l'enregistrement la visualisation le pointage les stats bref pratiquement tout ce réfère a ce numéro en question voir ci dessous.

Code : Tout sélectionner

Numero = "D" & CStr(year(now)) & CStr(format(month(now),"00"))& "-" & CompterLignes("Devis")


dans mon projet lors de l'enregistrement l'utilisateur doit sélectionner une date préalablement (pour raccorder les donnée journalier saisie a la date. cette date (validité de donnée en cellule d11) fait référence a une plage de donnée de date que j'ai crée au préalable en colonne A feuille devis (actuellement devis futur feuille récap chiffre..)

je n'arrête pas de tester et depuis 1 semaine je bloque sur ca! Des que je modifies l'enregistrement plus rien ne fonctionne voici les deux code (code original et code adapter), si quelqu'un peut m'aider SVP???


code originale

Code : Tout sélectionner

Sub EnregistrerDevis
dim Saisie as object, Devis as object
dim Numero as String
dim i as integer

Saisie = thisComponent.Sheets.getByName("Saisie")
Devis = thisComponent.Sheets.getByName("Devis")
Deproteger("Devis")

Select Case Mid(Saisie.getcellrangebyname("D11").string,4,1)
	Case "F"
	MsgBox "Facture déjà enregistrée !", ,"MicroFacturier"
	exit sub
	Case "D"
	MsgBox "Devis déjà enregistré !", ,"MicroFacturier"
	exit sub
	case Else
	if MsgBox ("Vous allez enregistrer ce devis, voulez-vous continuer ?",1,"MicroFacturier") = 2 then exit sub
End Select

Numero = "D" & CStr(year(now)) & CStr(format(month(now),"00"))& "-" & CompterLignes("Devis")

InsererLigne("Devis")
'Devis.getCellrangebyName("A2:K2").cellbackcolor = -1
Devis.getCellrangeByName("A2:K2").charcolor = -1
Devis.getcellrangebyname("A2").string = Numero
Devis.getcellrangebyname("B2").string = Saisie.getcellrangebyname("H2").string
Devis.getcellrangebyname("C2").value = Saisie.getcellrangebyname("L40").value
Devis.getcellrangebyname("D2").value = Saisie.getcellrangebyname("L43").value
Devis.getcellrangebyname("E2").value = dateValue(Now)
Devis.getcellrangebyname("F2").string = Saisie.getcellrangebyname("D52").string
Devis.getcellrangebyname("G2").string = Saisie.getcellrangebyname("D53").string
Devis.getcellrangebyname("H2").string = Saisie.getcellrangebyname("D54").string
Devis.getcellrangebyname("I2").string = Saisie.getcellrangebyname("D55").string
Devis.getcellrangebyname("K2").string = Saisie.getcellrangebyname("B13").string
Proteger("Devis")
'EnregistrerPrestations(Numero)

Saisie.getcellrangebyname("N12").string = Numero
VoirDevis
end Sub
code adapter

Code : Tout sélectionner

Sub EnregistrerDevis
dim Saisie as object, Devis as object, Recherche as object, Trouve as object, FiltreVide as object 
dim Numero as string
dim i as integer

'on error goto erreur
Saisie = thisComponent.Sheets.getByName("Saisie")
Devis = thisComponent.Sheets.getByName("Devis")
Deproteger("Devis")

Numero = Saisie.getcellrangebyname("D11").string
Recherche = Devis.createSearchDescriptor()
With Recherche
  .SearchString = Saisie.getcellrangebyname("D11").value
  .SearchWords = True
'End With

if Recherche.SearchString = "NOUVELLE CAISSE" then
		MsgBox "vous n'avez pas sélectionner de jour de caisse a enregistrer ", ,"MicroFacturier"
		exit sub 
		Else
Trouve = Devis.findFirst(Recherche)
i = Trouve.cellAddress.row
InsererLigne("Devis")
'Devis.getCellrangebyName("A2:K2").cellbackcolor = -1
Devis.getCellrangeByName("B:"& i)("U"& i).charcolor = -1
Devis.getcellrangebyname("A" & i + 1).string = Numero
Devis.getcellrangebyname("B" & i + 1).string = Saisie.getcellrangebyname("L11").string
Devis.getcellrangebyname("D" & i + 1).value = Saisie.getcellrangebyname("E15").value
Devis.getcellrangebyname("E" & i + 1).value = Saisie.getcellrangebyname("E16").value
Devis.getcellrangebyname("F" & i + 1).value = Saisie.getcellrangebyname("N23").value
Devis.getcellrangebyname("N" & i + 1).value = Saisie.getcellrangebyname("N15").value
Devis.getcellrangebyname("O" & i + 1).value = Saisie.getcellrangebyname("N16").value
Devis.getcellrangebyname("P" & i + 1).value = Saisie.getcellrangebyname("N17").value
Devis.getcellrangebyname("Q" & i + 1).value = Saisie.getcellrangebyname("N18").value
Devis.getcellrangebyname("R" & i + 1).value = Saisie.getcellrangebyname("N19").value
Devis.getcellrangebyname("S" & i + 1).value = Saisie.getcellrangebyname("N20").value
Devis.getcellrangebyname("T" & i + 1).value = Saisie.getcellrangebyname("N21").value
Devis.getcellrangebyname("U" & i + 1).value = Saisie.getcellrangebyname("N22").value
Devis.getcellrangebyname("G" & i + 1).value = Saisie.getcellrangebyname("D15").value
Devis.getcellrangebyname("H" & i + 1).value = Saisie.getcellrangebyname("D16").value
Devis.getcellrangebyname("I" & i + 1).value = Saisie.getcellrangebyname("D17").value
Devis.getcellrangebyname("J" & i + 1).value = Saisie.getcellrangebyname("C15").value
Devis.getcellrangebyname("K" & i + 1).value = Saisie.getcellrangebyname("C16").value
Devis.getcellrangebyname("L" & i + 1).value = Saisie.getcellrangebyname("C17").value
Devis.getcellrangebyname("K" & i + 1).value = Saisie.getcellrangebyname("N14").value
Devis.getcellrangebyname("K" & i + 1).value
Proteger("Devis")
'EnregistrerPrestations(Numero)

Saisie.getcellrangebyname("O12").string = numero
VoirDevis
'end if
end Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par micmac le 18 mai 2022 05:33, modifié 7 fois.
Raison : Balisage
Pc windows 10
open office 4.1.11
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Calc] Rechercher ligne, date et y copier des cellules

Message par Bidouille »

Bonjour,
maxime14000 a écrit :dans le micro facturier
Ce logiciel a une section dédiée. Je déplace le fil au bon endroit.
maxime14000
Membre lOOyal
Membre lOOyal
Messages : 40
Inscription : 23 mars 2019 21:49

Re: Modifier numéro et paramètre d'enregistrement

Message par maxime14000 »

j'avance petit a petit sur le reste du projet et j'ai mis a jour le fichier. Mais pour le problème principal quelqu'un svp pour m'aider?
Pc windows 10
open office 4.1.11
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12231
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: Modifier numéro et paramètre d'enregistrement

Message par Bidouille »

Vous m'avez averti par MP que vous aviez simplifié votre problématique en section Macros.
Il aurait été utile de fournir un lien vers votre nouvelle question afin que d'autres puissent suivre le problème :
https://forum.openoffice.org/fr/forum/v ... =8&t=65188


Je rappelle que la messagerie privée ne doit pas être utilisée. D'abord parce que d'autres personnes peuvent être intéressés par les réponses apportées, que ce soit dans l'immédiat ou plus tard en faisant une recherche dans ce forum. Ensuite parce que vous restreignez le taux de réponses à une seule personne, alors que d'autres pourraient peut-être vous proposer de meilleures solutions.