OVH Cloud OVH Cloud

Numero Auto

9 réponses
Avatar
Ayrton [ASC]
Bonjour à tous,

Voilà mon souci :
Je fais une petite appli pour des personnes du service commercial de ma
boite et je sèche sur un cas bien précis.
Est il possible à chaque ouverture de classeur d'avoir un nouveau numéro
dans une cellule ?
Je m'exploique : J'ai une cellule D12 à l'interieur de laquelle figure un
numéro que les gens doivent saisir ; j'aimerais qu'à chaque fois qu'une
personne ferme le classeur ce numéro doit enregistré ( ça c'est pas trop dur
;-) ) par est il possible qu'à la prochaine ouverture ce numéro soit égal à
l'ancien +1.
Ex : Une personne saisie 05 0010 et finie renseigner les différentes
cellules pour y mettre les infos nécessaire ; ensuite elle sauves puis ferme
le classeur; ce serait bie nsi celui ou celle qui arrive derrière voit
directement affiché dans cette cellule : 05 0011 ; ensuite elle n'aurait
faire sa saisie classique, puis enregistrer et fermer ; et rebelote pour
celui qui passe derrière.
Je ne connais pas la syntaxe et je ne sais pas si c'est réalisable.
J'aurais préféré faire ça avec Access que je connais beaucoup mieux mais
pour diverses raisons on m'a demandé Excel ! ! !

Merci de vos conseils pour la faisabilité et de votre aide pour une
éventuelle bonne syntaxe.

Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v

9 réponses

Avatar
MichDenis
Bonjour Ayrton [ASC],

Dans le ThisWorkbook de ton projet VBA, colle ceci en modifiant le nom de la feuille et oberve ce qui arrive lorsque tu ré-ouvres
ton classeur.

Pour obtenir ce que tu désires dans ta cellule, tu dois utiliser ce format de cellule : "0## ###0"


'------------------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.range("D12").numberformat = "0## ###0"
.Range("D12") = .Range("D12") + 1
End With

End Sub
'------------------------------


P.S. Qu'est-ce qui se passe, si l'un de tes usagers pour faire une farce, vide cette cellule avant d'enregistrer et fermer le
classeur.
;-))


Salutations!


"Ayrton [ASC]" a écrit dans le message de news:
Bonjour à tous,

Voilà mon souci :
Je fais une petite appli pour des personnes du service commercial de ma
boite et je sèche sur un cas bien précis.
Est il possible à chaque ouverture de classeur d'avoir un nouveau numéro
dans une cellule ?
Je m'exploique : J'ai une cellule D12 à l'interieur de laquelle figure un
numéro que les gens doivent saisir ; j'aimerais qu'à chaque fois qu'une
personne ferme le classeur ce numéro doit enregistré ( ça c'est pas trop dur
;-) ) par est il possible qu'à la prochaine ouverture ce numéro soit égal à
l'ancien +1.
Ex : Une personne saisie 05 0010 et finie renseigner les différentes
cellules pour y mettre les infos nécessaire ; ensuite elle sauves puis ferme
le classeur; ce serait bie nsi celui ou celle qui arrive derrière voit
directement affiché dans cette cellule : 05 0011 ; ensuite elle n'aurait
faire sa saisie classique, puis enregistrer et fermer ; et rebelote pour
celui qui passe derrière.
Je ne connais pas la syntaxe et je ne sais pas si c'est réalisable.
J'aurais préféré faire ça avec Access que je connais beaucoup mieux mais
pour diverses raisons on m'a demandé Excel ! ! !

Merci de vos conseils pour la faisabilité et de votre aide pour une
éventuelle bonne syntaxe.

Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v
Avatar
Jacklyne
Bonjour,
Essaie ceci , à l'ouverture du classeur :
Private Sub Workbook_Open()
'Accélère l'exécution de la macro
Application.ScreenUpdating = False
'Incrémente le numéro
Range("D12").Value = Range("D12").Value + 1
End Sub

"Ayrton [ASC]" a écrit dans le message de news:

Bonjour à tous,

Voilà mon souci :
Je fais une petite appli pour des personnes du service commercial de ma
boite et je sèche sur un cas bien précis.
Est il possible à chaque ouverture de classeur d'avoir un nouveau numéro
dans une cellule ?
Je m'exploique : J'ai une cellule D12 à l'interieur de laquelle figure un
numéro que les gens doivent saisir ; j'aimerais qu'à chaque fois qu'une
personne ferme le classeur ce numéro doit enregistré ( ça c'est pas trop
dur

;-) ) par est il possible qu'à la prochaine ouverture ce numéro soit égal
à

l'ancien +1.
Ex : Une personne saisie 05 0010 et finie renseigner les différentes
cellules pour y mettre les infos nécessaire ; ensuite elle sauves puis
ferme

le classeur; ce serait bie nsi celui ou celle qui arrive derrière voit
directement affiché dans cette cellule : 05 0011 ; ensuite elle n'aurait
faire sa saisie classique, puis enregistrer et fermer ; et rebelote pour
celui qui passe derrière.
Je ne connais pas la syntaxe et je ne sais pas si c'est réalisable.
J'aurais préféré faire ça avec Access que je connais beaucoup mieux mais
pour diverses raisons on m'a demandé Excel ! ! !

Merci de vos conseils pour la faisabilité et de votre aide pour une
éventuelle bonne syntaxe.

Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v




Avatar
Ayrton [ASC]
Bonjour *MichDenis*
Dans ton message de
news:, tu nous tenais ce discours::
:-(*)
Bonjour Ayrton [ASC],

Dans le ThisWorkbook de ton projet VBA, colle ceci en modifiant le
nom de la feuille et oberve ce qui arrive lorsque tu ré-ouvres ton
classeur.

Pour obtenir ce que tu désires dans ta cellule, tu dois utiliser ce
format de cellule : "0## ###0"


'------------------------------
Private Sub Workbook_Open()

With Worksheets("Feuil1")
.range("D12").numberformat = "0## ###0"
.Range("D12") = .Range("D12") + 1
End With

End Sub
'------------------------------


MErci de ton aide MichDenis mais après avoir modifié le nom de ma feuille,
quand j'ouvre mon classeur à nouveau il ne se passe rien ;-(
Mon numéro reste le même ; ais je mal fait quelque chose ?
Pour info, voici ce que j'ai fait : J'ai ouvert mon classeur, fait Alt F11
puis j'ai collé le code que tu m'as gentillement donné ; j'ai changé le "
Feuil1 " pour mette " Photo" qui est le nm de ma feuille ; et ensuite j'ai
testé mais mon numéro ne bouge pas ;-(

P.S. Qu'est-ce qui se passe, si l'un de tes usagers pour faire une
farce, vide cette cellule avant d'enregistrer et fermer le classeur.
;-))


Effectivement si quelqu'un fait ça, c'est le bor.... ;-)
Je pense que je dois pouvoir empêché ça non ?
un petit coup de vba pourrait m'aider ?

Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v

Avatar
Ayrton [ASC]
Bonjour *Jacklyne*
Dans ton message de
news:OgEOw$, tu nous tenais ce discours::
:-(*)
Bonjour,
Essaie ceci , à l'ouverture du classeur :
Private Sub Workbook_Open()
'Accélère l'exécution de la macro
Application.ScreenUpdating = False
'Incrémente le numéro
Range("D12").Value = Range("D12").Value + 1
End Sub


Merci de ton aide Jacklyne mais je dois être maudit car là aussi quand je
réouvre mon classeur le numéro reste le même ;-(
J'ai bien vérifié en plus que ma cellule ne soit pas verrouillée .Je ne vois
pas où cela peut pêcher ! ! !

Merci quand même du coup de main

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v

Avatar
Ayrton [ASC]
Re MichDenis,

Je viens dem'apercevoir que je ne dois pas avoir le bon format ; dans ton
code tu me donne un format pour le chiffre que jet'ai donné, à savoir 05
0010.
Dans la réalité, le chffire tapé commence à 3000 ; il me faudrait donc 3001
puis à l'ouverture suivante 3002 etc...........

Le format n'étant pas le bon, l'erreur ne viendrait elle pas de là ?
J'ai essayé de tester avec 05 0010 mais je n'arrive pas à afficher ce
chiffre ; même dans le format de cellule, je n'ai jamais ce que je veux ;
entre les 0 et les #, je n'arrive pas à afficher 05 0010 ; donc je ne peux
pas savoir si c'est vraiment à cause du mauvais format que je t'ai donné que
cela ne fonctionne pas.

Merci encore

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v
Avatar
Ayrton [ASC]
Bonjour *Youky*
Dans ton message de
news:, tu nous tenais ce discours::
:-(*)
Hello,
Cela va créer un petit fichier N°bon.txt facilement accessible
si ce fichier est effacé il repart à 1
copier ceete macro en workbook, remplace "modele par le nom de
l'onglet Youky

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
On Error Resume Next
canal = FreeFile
fichier = ThisWorkbook.Path & "N°bon.txt"
Open fichier For Input As #canal
Input #canal, nf
Close #canal
nf = nf + 1
Open fichier For Output As #canal
Print #canal, nf
Close #canal
Sheets("modele").[D12] = nf 'modele à remplacer
End Sub



Merci beaucoup Youki ; ça fonctionne à 50 % car mon fichier texte est bien
crée maismon numéro dans excel n'est pas régénéré ; cela reste toujours le
même.
Par contre je vous remercie *énormément* tous les trois car cela fonctionne
très bien.Dans la précipitation, j'avais mal mis le code ou du moins pas au
bon endroit; je le mettais dnas la feuille " Photo " au lieu de le mettre
dans WorkBook alors que MichDenis me l'avait pourtant bien précisé.
Meric donc 1000 fois à tous les trois .

Bonne fin de journée
Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v

Avatar
Youky
Hello,
Cela va créer un petit fichier N°bon.txt facilement accessible
si ce fichier est effacé il repart à 1
copier ceete macro en workbook, remplace "modele par le nom de l'onglet
Youky

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
On Error Resume Next
canal = FreeFile
fichier = ThisWorkbook.Path & "N°bon.txt"
Open fichier For Input As #canal
Input #canal, nf
Close #canal
nf = nf + 1
Open fichier For Output As #canal
Print #canal, nf
Close #canal
Sheets("modele").[D12] = nf 'modele à remplacer
End Sub

"Ayrton [ASC]" a écrit dans le message news:

Bonjour *Jacklyne*
Dans ton message de
news:OgEOw$, tu nous tenais ce discours::
:-(*)
Bonjour,
Essaie ceci , à l'ouverture du classeur :
Private Sub Workbook_Open()
'Accélère l'exécution de la macro
Application.ScreenUpdating = False
'Incrémente le numéro
Range("D12").Value = Range("D12").Value + 1
End Sub


Merci de ton aide Jacklyne mais je dois être maudit car là aussi quand je
réouvre mon classeur le numéro reste le même ;-(
J'ai bien vérifié en plus que ma cellule ne soit pas verrouillée .Je ne
vois

pas où cela peut pêcher ! ! !

Merci quand même du coup de main

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v





Avatar
MichDenis
La procédure doit être copiée dans LE THISWORKBOOK DE TON CLASSEUR. et si cela ne fonctionne pas, je t'invite à retourner ta copie
d'excel à Microsoft.

Pour ce qui est du format de la cellule, tu donne celui que tu désires... mais le format n'a pas d'incidence sur le fait que le
contenu de la cellule doit s'incrémenter.


Salutations!




"Ayrton [ASC]" a écrit dans le message de news: %
Re MichDenis,

Je viens dem'apercevoir que je ne dois pas avoir le bon format ; dans ton
code tu me donne un format pour le chiffre que jet'ai donné, à savoir 05
0010.
Dans la réalité, le chffire tapé commence à 3000 ; il me faudrait donc 3001
puis à l'ouverture suivante 3002 etc...........

Le format n'étant pas le bon, l'erreur ne viendrait elle pas de là ?
J'ai essayé de tester avec 05 0010 mais je n'arrive pas à afficher ce
chiffre ; même dans le format de cellule, je n'ai jamais ce que je veux ;
entre les 0 et les #, je n'arrive pas à afficher 05 0010 ; donc je ne peux
pas savoir si c'est vraiment à cause du mauvais format que je t'ai donné que
cela ne fonctionne pas.

Merci encore

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v
Avatar
Ayrton [ASC]
Bonjour *MichDenis*
Dans ton message de
news:u%, tu nous tenais ce discours::
:-(*)

La procédure doit être copiée dans LE THISWORKBOOK DE TON CLASSEUR.
et si cela ne fonctionne pas, je t'invite à retourner ta copie
d'excel à Microsoft.


Non il n'y pas de souci ça fonctionne et ma copie d' Excel est une " vraie "
achetée en boîte et avec licence ; donc ce côté il n'y a pas de souci.
Comme je le disais un peu plus tôt dans une de mes réponses à ce post, j'ai
été trop vite et mis ton code dans la feuille " Photo " au lieu de le mettre
dans This Workbook ;-( forcément, ça ne risquait oas de fonctionner.
Après l'avoir mis là où il faut, ça roule ;-)
Je te remercie donc encore pour ta gentillesse car ton code va bien me
dépanner ; autrement dit, ça trouve la solution à mon problème ;-)

Cordialement

--
@+
Ayrton ;-)
http://cerbermail.com/?CfLqYYyx1v