Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi?
Autre question. si je veux que le nom du fichier se nomme automatiquement
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
pour la première partie de ta question, ce ne sera pas possible, car ton fichier xlt ne change pas en réalité, quand tu le ferme à la fin, il garde la même structure que lorsque tu l'a ouvert... et la deuxième partie, je vais te répondre un peu plus tard...
ciao
On 4 juin, 21:32, Marc <M...@discussions.microsoft.com> wrote:
Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi?
Autre question. si je veux que le nom du fichier se nomme automatiquement
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
Merci de m'aider
Marc
pour la première partie de ta question, ce ne sera pas possible, car
ton fichier xlt ne change pas en réalité, quand tu le ferme à la fin,
il garde la même structure que lorsque tu l'a ouvert... et la deuxième
partie, je vais te répondre un peu plus tard...
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
pour la première partie de ta question, ce ne sera pas possible, car ton fichier xlt ne change pas en réalité, quand tu le ferme à la fin, il garde la même structure que lorsque tu l'a ouvert... et la deuxième partie, je vais te répondre un peu plus tard...
ciao
jps
bonjour marc je te fais copie d'une réponse de anonymous donnée ici il y a quelques mois et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton modèle .xlt bonne chance jps
début de copie Voila Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code ci-dessous) contienne une cellule nommée (InsertionNomDéfinir) "numFact", cellule où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact" est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact" est décrémentée pour proposer à la création du prochain classeur basé sur le modèle un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open() If ActiveWorkbook.Path = "" Then [numFact] = [numFact] + 1 ActiveWorkbook.Saved = True ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xlt") End If End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) chemXlt = Application.TemplatesPath & "Fact.xlt" If ActiveWorkbook.Path = "" Then Set wbk = Workbooks.Open(chemXlt) With wbk.ActiveSheet .Range("NumFact") = .Range("NumFact") - 1 End With wbk.Close True End If End Sub
Il faut pour cela que le classeur de base soit nommé Fact.xlt, qu'il contienne une cellule nommée numFact, ouvrir l'editeur VBA à l'aide de la combinaison Alt+F11, de double cliquer sur ThisWorkbook du projet portant le nom du classeur dans la fenêtre située en haut à gauche et de copier l'ensemble des deux procédures, de Private Sub Workbook_Open() au deuxième End Sub dans la grande fenêtre de droite, puis d'enregistrer.
Attention Un fichier .xlt n'est pas destiné à être ouvert par la procédure "ouvrir", c'est un modèle, fonctionnant sur le même principe que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau donne classeur1.xls. Si tu procèdes maintenant de cette manière : Fichier / Nouveau, tu auras une fenêtre qui te proposera fact en plus de classeur ; en choisissant fact, tu ouvriras un fichier nommé fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
bonjour marc
je te fais copie d'une réponse de anonymous donnée ici il y a quelques mois
et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton
modèle .xlt
bonne chance
jps
début de copie
Voila Ci-dessous une solution qui suppose que ton modèle
("Fact.xlt" dans le code ci-dessous) contienne une
cellule nommée (InsertionNomDéfinir) "numFact", cellule
où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle
("Fact1.xls"), la cellule "numFact"
est incrémentée et le classeur est réenregistré comme
modèle "Fact.xlt", écrasant le précédent et sauvegardant
ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été
enregistré, on considère que le numéro de facture n'a pas
servi. Le modèle est réouvert et la cellule "numFact"
est décrémentée pour proposer à la création du prochain
classeur basé sur le modèle un numéro de
facture "cohérent" avec les précédentes factures
enregistrées.
Private Sub Workbook_Open()
If ActiveWorkbook.Path = "" Then
[numFact] = [numFact] + 1
ActiveWorkbook.Saved = True
ActiveWorkbook.SaveCopyAs(Application.TemplatesPath
& "Fact.xlt")
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
chemXlt = Application.TemplatesPath & "Fact.xlt"
If ActiveWorkbook.Path = "" Then
Set wbk = Workbooks.Open(chemXlt)
With wbk.ActiveSheet
.Range("NumFact") = .Range("NumFact") - 1
End With
wbk.Close True
End If
End Sub
Il faut pour cela que le classeur de base soit nommé
Fact.xlt, qu'il contienne une cellule nommée
numFact, ouvrir l'editeur VBA à l'aide de la combinaison
Alt+F11, de double cliquer sur ThisWorkbook du
projet portant le nom du classeur dans la fenêtre située
en haut à gauche et de copier l'ensemble des
deux procédures, de Private Sub Workbook_Open() au
deuxième End Sub dans la grande fenêtre de droite,
puis d'enregistrer.
Attention
Un fichier .xlt n'est pas destiné à être ouvert par la
procédure "ouvrir",
c'est un modèle, fonctionnant sur le même principe
que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau
donne classeur1.xls.
Si tu procèdes maintenant de cette manière : Fichier /
Nouveau,
tu auras une fenêtre qui te proposera fact en plus de
classeur ;
en choisissant fact, tu ouvriras un fichier nommé
fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" <Marc@discussions.microsoft.com> a écrit dans le message de news:
C859AD0C-07D4-43FD-89B0-69219EC63387@microsoft.com...
Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi?
Autre question. si je veux que le nom du fichier se nomme automatiquement
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
bonjour marc je te fais copie d'une réponse de anonymous donnée ici il y a quelques mois et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton modèle .xlt bonne chance jps
début de copie Voila Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code ci-dessous) contienne une cellule nommée (InsertionNomDéfinir) "numFact", cellule où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact" est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact" est décrémentée pour proposer à la création du prochain classeur basé sur le modèle un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open() If ActiveWorkbook.Path = "" Then [numFact] = [numFact] + 1 ActiveWorkbook.Saved = True ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xlt") End If End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) chemXlt = Application.TemplatesPath & "Fact.xlt" If ActiveWorkbook.Path = "" Then Set wbk = Workbooks.Open(chemXlt) With wbk.ActiveSheet .Range("NumFact") = .Range("NumFact") - 1 End With wbk.Close True End If End Sub
Il faut pour cela que le classeur de base soit nommé Fact.xlt, qu'il contienne une cellule nommée numFact, ouvrir l'editeur VBA à l'aide de la combinaison Alt+F11, de double cliquer sur ThisWorkbook du projet portant le nom du classeur dans la fenêtre située en haut à gauche et de copier l'ensemble des deux procédures, de Private Sub Workbook_Open() au deuxième End Sub dans la grande fenêtre de droite, puis d'enregistrer.
Attention Un fichier .xlt n'est pas destiné à être ouvert par la procédure "ouvrir", c'est un modèle, fonctionnant sur le même principe que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau donne classeur1.xls. Si tu procèdes maintenant de cette manière : Fichier / Nouveau, tu auras une fenêtre qui te proposera fact en plus de classeur ; en choisissant fact, tu ouvriras un fichier nommé fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
jps
rebonjour pour la seconde partie, voici cette fois la copie d'un post de l'incontournable papou elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien évidemment HTH jps
début de copie
Modifier éventuellement avec le nom de la feuille : Sub EnregistrerAvecParam() Const Rp As String = "C:Mes documents" Dim SousRp As String Dim NomFic As String SousRp = Worksheets("Feuil1").Range("A1").Value NomFic = Worksheets("Feuil1").Range("A1").Value If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _ , vbInformation, "Impossible": Exit Sub ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _ & NomFic & ".xls" End Sub
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
rebonjour
pour la seconde partie, voici cette fois la copie d'un post de
l'incontournable papou
elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien
évidemment
HTH
jps
début de copie
Modifier éventuellement avec le nom de la feuille :
Sub EnregistrerAvecParam()
Const Rp As String = "C:Mes documents"
Dim SousRp As String
Dim NomFic As String
SousRp = Worksheets("Feuil1").Range("A1").Value
NomFic = Worksheets("Feuil1").Range("A1").Value
If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _
, vbInformation, "Impossible": Exit Sub
ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _
& NomFic & ".xls"
End Sub
fin de copie
"Marc" <Marc@discussions.microsoft.com> a écrit dans le message de news:
C859AD0C-07D4-43FD-89B0-69219EC63387@microsoft.com...
Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi?
Autre question. si je veux que le nom du fichier se nomme automatiquement
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
rebonjour pour la seconde partie, voici cette fois la copie d'un post de l'incontournable papou elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien évidemment HTH jps
début de copie
Modifier éventuellement avec le nom de la feuille : Sub EnregistrerAvecParam() Const Rp As String = "C:Mes documents" Dim SousRp As String Dim NomFic As String SousRp = Worksheets("Feuil1").Range("A1").Value NomFic = Worksheets("Feuil1").Range("A1").Value If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _ , vbInformation, "Impossible": Exit Sub ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _ & NomFic & ".xls" End Sub
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
ymer.hyseni
On 4 juin, 21:57, "jps" wrote:
bonjour marc je te fais copie d'une réponse de anonymous donnée ici il y a quelque s mois et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton modèle .xlt bonne chance jps
début de copie Voila Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code ci-dessous) contienne une cellule nommée (InsertionNomDéfinir) "numFact", cellule où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact" est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact" est décrémentée pour proposer à la création du prochain classeur basé sur le modèle un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open() If ActiveWorkbook.Path = "" Then [numFact] = [numFact] + 1 ActiveWorkbook.Saved = True ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xlt") End If End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) chemXlt = Application.TemplatesPath & "Fact.xlt" If ActiveWorkbook.Path = "" Then Set wbk = Workbooks.Open(chemXlt) With wbk.ActiveSheet .Range("NumFact") = .Range("NumFact") - 1 End With wbk.Close True End If End Sub
Il faut pour cela que le classeur de base soit nommé Fact.xlt, qu'il contienne une cellule nommée numFact, ouvrir l'editeur VBA à l'aide de la combinaison Alt+F11, de double cliquer sur ThisWorkbook du projet portant le nom du classeur dans la fenêtre située en haut à gauche et de copier l'ensemble des deux procédures, de Private Sub Workbook_Open() au deuxième End Sub dans la grande fenêtre de droite, puis d'enregistrer.
Attention Un fichier .xlt n'est pas destiné à être ouvert par la procédure "ouvrir", c'est un modèle, fonctionnant sur le même principe que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau donne classeur1.xls. Si tu procèdes maintenant de cette manière : Fichier / Nouveau, tu auras une fenêtre qui te proposera fact en plus de classeur ; en choisissant fact, tu ouvriras un fichier nommé fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourqu oi? Autre question. si je veux que le nom du fichier se nomme automatiqueme nt comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
je te propose une chose, pour simplifier, il fait toi un fichier de côté, où tu mets les numéros de factures que tu veux, puis une peti te macro qui va à l'ouverture de ton fact.xlt aller chercher à la cellule A1 ce qui se trouve... et bien sur il supprime la cellule afin que la prochaine vient prendre place dedans... et comme ca tu évites plein de complications...
ciao
On 4 juin, 21:57, "jps" <j...@wannadoodoo.fr> wrote:
bonjour marc
je te fais copie d'une réponse de anonymous donnée ici il y a quelque s mois
et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton
modèle .xlt
bonne chance
jps
début de copie
Voila Ci-dessous une solution qui suppose que ton modèle
("Fact.xlt" dans le code ci-dessous) contienne une
cellule nommée (InsertionNomDéfinir) "numFact", cellule
où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle
("Fact1.xls"), la cellule "numFact"
est incrémentée et le classeur est réenregistré comme
modèle "Fact.xlt", écrasant le précédent et sauvegardant
ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été
enregistré, on considère que le numéro de facture n'a pas
servi. Le modèle est réouvert et la cellule "numFact"
est décrémentée pour proposer à la création du prochain
classeur basé sur le modèle un numéro de
facture "cohérent" avec les précédentes factures
enregistrées.
Private Sub Workbook_Open()
If ActiveWorkbook.Path = "" Then
[numFact] = [numFact] + 1
ActiveWorkbook.Saved = True
ActiveWorkbook.SaveCopyAs(Application.TemplatesPath
& "Fact.xlt")
End If
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
chemXlt = Application.TemplatesPath & "Fact.xlt"
If ActiveWorkbook.Path = "" Then
Set wbk = Workbooks.Open(chemXlt)
With wbk.ActiveSheet
.Range("NumFact") = .Range("NumFact") - 1
End With
wbk.Close True
End If
End Sub
Il faut pour cela que le classeur de base soit nommé
Fact.xlt, qu'il contienne une cellule nommée
numFact, ouvrir l'editeur VBA à l'aide de la combinaison
Alt+F11, de double cliquer sur ThisWorkbook du
projet portant le nom du classeur dans la fenêtre située
en haut à gauche et de copier l'ensemble des
deux procédures, de Private Sub Workbook_Open() au
deuxième End Sub dans la grande fenêtre de droite,
puis d'enregistrer.
Attention
Un fichier .xlt n'est pas destiné à être ouvert par la
procédure "ouvrir",
c'est un modèle, fonctionnant sur le même principe
que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau
donne classeur1.xls.
Si tu procèdes maintenant de cette manière : Fichier /
Nouveau,
tu auras une fenêtre qui te proposera fact en plus de
classeur ;
en choisissant fact, tu ouvriras un fichier nommé
fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" <M...@discussions.microsoft.com> a écrit dans le message de news:
C859AD0C-07D4-43FD-89B0-69219EC63...@microsoft.com...
Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourqu oi?
Autre question. si je veux que le nom du fichier se nomme automatiqueme nt
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
Merci de m'aider
Marc
je te propose une chose, pour simplifier, il fait toi un fichier de
côté, où tu mets les numéros de factures que tu veux, puis une peti te
macro qui va à l'ouverture de ton fact.xlt aller chercher à la cellule
A1 ce qui se trouve... et bien sur il supprime la cellule afin que la
prochaine vient prendre place dedans... et comme ca tu évites plein de
complications...
bonjour marc je te fais copie d'une réponse de anonymous donnée ici il y a quelque s mois et dont tu peux t'inspirer pour ce qui concerne la numérotation de ton modèle .xlt bonne chance jps
début de copie Voila Ci-dessous une solution qui suppose que ton modèle ("Fact.xlt" dans le code ci-dessous) contienne une cellule nommée (InsertionNomDéfinir) "numFact", cellule où s'inscrira le numéro incrémenté.
A l'ouverture d'un classeur basé sur le modèle ("Fact1.xls"), la cellule "numFact" est incrémentée et le classeur est réenregistré comme modèle "Fact.xlt", écrasant le précédent et sauvegardant ainsi le nouveau numéro.
A la fermeture, si le classeur "Fact1.xls" n'a pas été enregistré, on considère que le numéro de facture n'a pas servi. Le modèle est réouvert et la cellule "numFact" est décrémentée pour proposer à la création du prochain classeur basé sur le modèle un numéro de facture "cohérent" avec les précédentes factures enregistrées.
Private Sub Workbook_Open() If ActiveWorkbook.Path = "" Then [numFact] = [numFact] + 1 ActiveWorkbook.Saved = True ActiveWorkbook.SaveCopyAs(Application.TemplatesPath & "Fact.xlt") End If End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean) chemXlt = Application.TemplatesPath & "Fact.xlt" If ActiveWorkbook.Path = "" Then Set wbk = Workbooks.Open(chemXlt) With wbk.ActiveSheet .Range("NumFact") = .Range("NumFact") - 1 End With wbk.Close True End If End Sub
Il faut pour cela que le classeur de base soit nommé Fact.xlt, qu'il contienne une cellule nommée numFact, ouvrir l'editeur VBA à l'aide de la combinaison Alt+F11, de double cliquer sur ThisWorkbook du projet portant le nom du classeur dans la fenêtre située en haut à gauche et de copier l'ensemble des deux procédures, de Private Sub Workbook_Open() au deuxième End Sub dans la grande fenêtre de droite, puis d'enregistrer.
Attention Un fichier .xlt n'est pas destiné à être ouvert par la procédure "ouvrir", c'est un modèle, fonctionnant sur le même principe que "classeur.xlt" qui, lorsqu'on utilise fichier nouveau donne classeur1.xls. Si tu procèdes maintenant de cette manière : Fichier / Nouveau, tu auras une fenêtre qui te proposera fact en plus de classeur ; en choisissant fact, tu ouvriras un fichier nommé fact1.xls avec une cellule Numfact incrémentée.
Voila j'espère avoir pu t'aider,
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourqu oi? Autre question. si je veux que le nom du fichier se nomme automatiqueme nt comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
je te propose une chose, pour simplifier, il fait toi un fichier de côté, où tu mets les numéros de factures que tu veux, puis une peti te macro qui va à l'ouverture de ton fact.xlt aller chercher à la cellule A1 ce qui se trouve... et bien sur il supprime la cellule afin que la prochaine vient prendre place dedans... et comme ca tu évites plein de complications...
ciao
Marc
Bonjour à vous deux un très grand merci pour votre aide, je vais analyser et adapter mon document à la macro que vous m'avez expliqué.
Merci et bonne fin de journée
rebonjour pour la seconde partie, voici cette fois la copie d'un post de l'incontournable papou elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien évidemment HTH jps
début de copie
Modifier éventuellement avec le nom de la feuille : Sub EnregistrerAvecParam() Const Rp As String = "C:Mes documents" Dim SousRp As String Dim NomFic As String SousRp = Worksheets("Feuil1").Range("A1").Value NomFic = Worksheets("Feuil1").Range("A1").Value If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _ , vbInformation, "Impossible": Exit Sub ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _ & NomFic & ".xls" End Sub
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Merci de m'aider
Marc
Bonjour à vous deux
un très grand merci pour votre aide, je vais analyser et adapter mon
document à la macro que vous m'avez expliqué.
Merci et bonne fin de journée
rebonjour
pour la seconde partie, voici cette fois la copie d'un post de
l'incontournable papou
elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien
évidemment
HTH
jps
début de copie
Modifier éventuellement avec le nom de la feuille :
Sub EnregistrerAvecParam()
Const Rp As String = "C:Mes documents"
Dim SousRp As String
Dim NomFic As String
SousRp = Worksheets("Feuil1").Range("A1").Value
NomFic = Worksheets("Feuil1").Range("A1").Value
If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _
, vbInformation, "Impossible": Exit Sub
ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _
& NomFic & ".xls"
End Sub
fin de copie
"Marc" <Marc@discussions.microsoft.com> a écrit dans le message de news:
C859AD0C-07D4-43FD-89B0-69219EC63387@microsoft.com...
Bonjour à vous tous
J'ai un modèle de facture (fichier.xlt)
Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est
incrémenté de 1 pour chaque nouvelle facture.
Voici mon code sur une feuille test
Private Sub Workbook_Open()
Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1
End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la
réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi?
Autre question. si je veux que le nom du fichier se nomme automatiquement
comme le texte qui sera inscrit dans la cellule B2 et le numéro de la
facture, je fais cela comment?
Bonjour à vous deux un très grand merci pour votre aide, je vais analyser et adapter mon document à la macro que vous m'avez expliqué.
Merci et bonne fin de journée
rebonjour pour la seconde partie, voici cette fois la copie d'un post de l'incontournable papou elle devrait t'aider pour l'enregistrement de ta facture...à adapter bien évidemment HTH jps
début de copie
Modifier éventuellement avec le nom de la feuille : Sub EnregistrerAvecParam() Const Rp As String = "C:Mes documents" Dim SousRp As String Dim NomFic As String SousRp = Worksheets("Feuil1").Range("A1").Value NomFic = Worksheets("Feuil1").Range("A1").Value If Rp = "" Or NomFic = "" Then MsgBox "Un paramètre est manquant" _ , vbInformation, "Impossible": Exit Sub ThisWorkbook.SaveAs Rp & SousRp & Application.PathSeparator _ & NomFic & ".xls" End Sub
fin de copie
"Marc" a écrit dans le message de news:
Bonjour à vous tous J'ai un modèle de facture (fichier.xlt) Je veux qu'à l'ouverture, dans la cellule b2, le numéro de facture est incrémenté de 1 pour chaque nouvelle facture. Voici mon code sur une feuille test
Private Sub Workbook_Open() Sheets("test").Range("b1") = Sheets("test").Range("b1") + 1 End Sub
le problème, c'est que dès que je sauvegarde en format xls, lors de la réouverture de mon xlt, j'ai encore le numéro précédent, pourquoi? Autre question. si je veux que le nom du fichier se nomme automatiquement comme le texte qui sera inscrit dans la cellule B2 et le numéro de la facture, je fais cela comment?
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :
;o)
début de copie fin de copie
que des gens fréquentables cette fois ci!
Heu... tu n'as pas mis [HS] ;o)))
l'aurait pu mettre :
début de cHopiNe fin de cHopiNe
-- -- @+ ;o)))
jps
ah! quelle belle image que celle de ce loup hurlant à la lune nordiste.... allez! ouste! à l'aniche quant à l'autre, je vas te le retourner comme une crêpe alsacienne, à tel point qu'il signera HPetsl (pour ne pas dire spaetzle....) jps
"Modeste" a écrit dans le message de news: %
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :
;o)
début de copie fin de copie
que des gens fréquentables cette fois ci!
Heu... tu n'as pas mis [HS] ;o)))
l'aurait pu mettre :
début de cHopiNe fin de cHopiNe
-- -- @+ ;o)))
ah! quelle belle image que celle de ce loup hurlant à la lune nordiste....
allez! ouste! à l'aniche
quant à l'autre, je vas te le retourner comme une crêpe alsacienne, à tel
point qu'il signera HPetsl (pour ne pas dire spaetzle....)
jps
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
%23vXYg5upHHA.716@TK2MSFTNGP05.phx.gbl...
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :
ah! quelle belle image que celle de ce loup hurlant à la lune nordiste.... allez! ouste! à l'aniche quant à l'autre, je vas te le retourner comme une crêpe alsacienne, à tel point qu'il signera HPetsl (pour ne pas dire spaetzle....) jps
"Modeste" a écrit dans le message de news: %
Bonsour® LSteph avec ferveur ;o))) vous nous disiez :
;o)
début de copie fin de copie
que des gens fréquentables cette fois ci!
Heu... tu n'as pas mis [HS] ;o)))
l'aurait pu mettre :
début de cHopiNe fin de cHopiNe
-- -- @+ ;o)))
Lola
"jps" a écrit dans le message de news:
allez! ouste! à l'aniche
Joli ! :-)
"jps" <jps@wannadoodoo.fr> a écrit dans le message de news:
OXV4PcvpHHA.2652@TK2MSFTNGP02.phx.gbl...