Enregistrer une variable dans un fichier modèle xltm qui n'est plus à l'écr

Bonjour, je suis à la recherche de savoir comment enregistrer une variable en vba dans un modèle.

Explication je fais une facture modèle. Le numéro de la facture doit s'incrémenter tout seul sans manip humaine pour éviter les erreurs.

A mon avis la solution serait de trouver une macro qui enregistre une valeur dans le modèle. Ainsi l’incrémentation se ferait naturellement.

Ex pour me faire comprendre j'ouvre excel et lance le modèle facture_spectacle dont le numéro est 0000. Le modèle génère facturation_spectacle1.xlsx.
j'ai placé une macro dans thisworkbook :

Private Sub Workbook_Open()

Range("D1").Value = Format(Range("D1").Value + 1, "0000") 'D1 est l'endroit de la numérotation dans une feuille de calcul dont l'onglet s'appelle facture
numero_facture = Range("D1").Value

End Sub

et mon numéro passe à 0001

Je sauvegarde cette facture sous un autre nom... Mais mon soucis est que je voudrais que le 0001 soit sauvegardé aussi dans mon modèle afin qu'il s'incrémente. Donc je voudrais savoir s'il est possible de faire une macro qui enregistrerait "à l'insu de mon plein gré" le nouveau numéro dans le modèle qui n'est plus à l'écran.
Est ce que c'est possible? J'ai lu que l'on pouvait exporter des variables dans un fichier. Mais je n'ai pas bien compris

Bonjour

Modifier en permanence le modèle ne me parait pas souhaitable. Il vaut mieux soit fichier txt servant de compteur (le plus simple), soit utiliser le n° de la facture dans le nom du fichier et déduire le prochain numéro de la liste des fichiers factures...

Bonjour

Mais comment fais t'on pour enregistrer le numéro dans un fichier texte ?

RE

Tu crées un fichier Compteur.txt avec la valeur 1 ou 1000 et rien d'autre

Puis dans ton modèle ajoute, en adaptant le chemin

Function MAJCompteur()

    Workbooks.OpenText Filename:="T:\TEMP\Compteur.txt", Origin:=xlWindows, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
        TrailingMinusNumbers:=True
        Numero = Range("A1").Value + 1
        Range("A1").Value = Numero
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    MAJCompteur = Numero
End Function

et tu rècupère le numéro dans une de tes Sub par

Sub ....()
....
Numero = MAJCompteur()
....
End Sub

j'essaie cela de suite

j'ai un petit soucis, mon compteur reste à 0

Merci de m'aider.

capture

le numero s'incrémente bien mais à la fin MajCompteur = Numero (Numero=7 mais MajCompteur=0

et range ("A1") =7 mais pas d'inscription dans le fichier

Eh bien ca fonctionne!!!!! SUPER un grand merci à toi.

Est ce que je peux etre gourmand ? J'enregistre de facon automatique le fichier xlsx en pdf. Je voudrais faire la meme chose au format excel. J'ai un petit soucis

La commande pour faire du pdf est ceci

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
dossier_facturation & archive & ".pdf", quality:= _
xlQualityStandart, includedocproperties:=True, ignoreprintareas:=False, _
from:=1, to:=1, openafterpublish:=True

Comment faire pour avoir la meme chose pour fichier excel

Re

Il suffit d'enregistrer normalement le fichier avant l'enregistrement pdf

En principe le principe est création d'un Excel à partir du modèle, remplissage de la facture, sauvegarde sous Facture1001.xlsx (par exemple) avec en gros

ThisWorkbook.SaveAs Filename:= "E:\TEMP\Facture1001.xlsx",  _
       FileFormat:= xlOpenXMLWorkbook, CreateBackup:=False

puis sauvegarde pdf, puis fermeture

Merci beaucoup

A la prochaine....

Rechercher des sujets similaires à "enregistrer variable fichier modele xltm qui ecr"