Creer un compteur qui s'arrete et recommence à 1 au bout de 20

Fermé
coboyforever Messages postés 35 Date d'inscription samedi 17 mars 2012 Statut Membre Dernière intervention 15 mai 2022 - 16 nov. 2016 à 23:58
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 17 nov. 2016 à 11:32
Bonjour,

Je souhaiterai savoir comment créer un compteur dans un fichier excel.

En effet, je souhaiterai que mon compteur débute à 1, puis à chaque ouverture du fichier, il faut que ça soit incrémenté. En revanche au bout de 20 il faut que lorsque j'ouvre le fichier, le compteur m'affiche 1 etc... etc...

En gros je souhaiterai avoir un compteur qui compte jusqu’à 20 puis se remet à 1 et recommence. L’incrémentation doit se faire à l'ouverture u fichier.

Je vous remercie pour votre aide


A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
Modifié par eriiic le 17/11/2016 à 00:13
Bonjour,

à mettre dans ThisWorkbook :
Private Sub Workbook_Open()
    With Sheets(1)
        .[A1] = (.[A1]) Mod 20 + 1
    End With
End Sub 

si tu l'ouvres 2 fois dans la journée il s'incrémentera 2 fois.
eric

En essayant continuellement, on finit par réussir. 
Donc plus ça rate, plus on a de chances que ça marche.(les Shadoks)
En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
0
coboyforever Messages postés 35 Date d'inscription samedi 17 mars 2012 Statut Membre Dernière intervention 15 mai 2022
17 nov. 2016 à 07:40
Merci beaucoup pour cette réponse, c'est exact, ça s'incrémente. Mais il y a un soucis. C'est le nouveau classeur que j'enregistre qui s'incrémente et non celui d'origine. Moi je veux que quand je modifie le classeur d'origine ensuite que je fais enregistrer sous il s'enregistre la ou je lui demande et reste fixe. Par contre mon classeur d'origine lui je veux que lors de la prochaine réouverture il s'incrémente.

Je te remercie déjà car ce que tu m'as donné comme code fonctionne.
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
17 nov. 2016 à 09:25
Bonjour,

Bizarre. Je viens de tester et c'est bien le classeur avec le code qui s'incrémente.
Dans le doute une une petite modif :
Private Sub Workbook_Open()
    With ThisWorkbook.Sheets(1)
        .[A1] = (.[A1]) Mod 20 + 1
    End With
End Sub

eric
0
coboyforever Messages postés 35 Date d'inscription samedi 17 mars 2012 Statut Membre Dernière intervention 15 mai 2022 > eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024
17 nov. 2016 à 09:37
Je m'exprime peut être mal. Je vais essayer d'être plus clair.

Le fichier contenant le code se trouve dans un dossier appelé A
j'ouvre le fichier du dossier A et il doit normalement porter le numero 1. j'écris ce que j'ai envie sur ce fichier ensuite pour garder le fichier du dossier A vierge, je fais enregistrer sous et je l'enregistre dans un dossier B (pas besoin de l'enregistrer sous un format supportant les macro car je veux que ce fichier enregistrer sous porte le même numéro a chaque ouverture). je ferme tous les fichier.

Lorsque je réouvre mon fichier d'origine qui se trouve dans le dossier A, je veux qu'il porte le numero 2 et ainsi de suite jusqu'à arriver à 20. A 20 le fichier quand je le réouvre portera le numero 1.

Ce qui se passe actuellement c'est que le fichier d'origine vierge qui se trouve dans le dossier A, quand je la modifie et que je l'enregistre sous dans un dossier B, mon fichier d'origine du dossier A quand je le réouvre reste sur le numero d'origine, il ne s'incrémente pas. En revanche, le fichier modifier que j'ai enregistrer dans le dossier B lui s'incrémente il porte le numero 2.

Merci pour ta patience
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 248
17 nov. 2016 à 11:32
Si tu n'enregistres pas le classeur A c'est normal qu'il ne garde pas la modification.
Ajoute Thisworkbook.save à la fin de l'ouverture si tu veux le faire automatiquement.
eric
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
17 nov. 2016 à 10:01
Bonjour
aller dans VBA, ouvrez la page "this workbook" et coller ce libellé:

Private Sub Workbook_Open()

If Range("Feuil1!A1").Value = 20 Then Range("Feuil1!A1").Value = 0

Range("Feuil1!A1").Value = Range("Feuil1!A1").Value + 1

End Sub


à adapter au nom de feuille et à la cellule souhaitée

crdlmnt
0
coboyforever Messages postés 35 Date d'inscription samedi 17 mars 2012 Statut Membre Dernière intervention 15 mai 2022
17 nov. 2016 à 10:44
Bonjour et merci pour la réponse.

Pareil pour la solution proposé par eric plus haut, le code est bon il fonctionne MAIS mon seul soucis c'est que mon fichier d'origine qui contient le code est dans un dossier nommé A. Je l'ouvre et le modifie puis je fais enregistrer sous et je l'enregistre dans un dossier B. Ce fichier que j'enregistre dans un dossier B je ne veux pas qu'il s'incrémente je veux que son nombre reste fixe. En revanche le fichier d'origine qui se trouve dans le dossier A et qui est toujours vierge (car j'ai fais enregistrer sous lorsque je le modifie) je veux que lorsque je le réouvre pour modifier à nouveau (nouvelle facture ou nouveau document à imprimer) je veux qu'il porte le numero 2 (alors que a la premiere modif il portait le numero 1) et ainsi de suite jusqu'à 20. Puis a 20 il revient à 0.

Je sais c'est compliqué mais pour le fonctionnement et l'organisation de mon fichier il est impératif que je puisse créer quelque chose qui correspond a ce que je viens de décrire.....

Je vous remercie à tous....
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié par fabien25000 le 17/11/2016 à 11:21
Bonjour,
excusez moi d'intervenir, je vois beaucoup parler de VBA, je n'y connais rien pour le moment mais ça m'interresse et je me sert de vos réponses pour essayer de comprendre et d'apprendre
n'est il pas possible de rajouter une condition type
if "nom de fichier initial" then range +1 sinon range +0 (ou stop)?
0