Enregistrement fichier en fonction d'une cellule + tri

Bonjour à tous,

je reviens vers vous avec mon fichier car je ne m'en sors pas à 2 niveaux.

1) je souhaiterais que le fichier soit enregistré en cliquant sur la disquette que j'ai inséré en fonction de la date qui est reprise dans la cellule Q1.

Cette date doit pouvoir être modifiée avec les 2 flèches Haut-Bas. Mais la date ne peut pas changer d'elle même en fonction du jour que l'on est, c'est l'utilisateur et seulement lui qui peut déterminer la date qui doit s'afficher dans la cellule et c'est cette date qui doit apparaître dans le nom du fichier (sous la forme AAAA/MM/JJ)

2) Lorsque je fais un tri de la colonne C (niveau de tri C puis B) et qu'un nombre identique apparaît plusieurs fois dans la colonne C (1823 dans mon exemple), je souhaiterais qu'une numérotation apparaisse dans la colonne B en rapport avec ce numéro et ce en fonction des dates et heures croissantes de la colonne I et J, tout comme vous le constaterez dans le fichier ci-joint.

En vous remerciant

up

Bonjour,

Dans le fichier joint :

  • dans la colonne B, une formule pour numéroter les "doublons"
  • dans le module 7 :
- Une macro pour incrémenter la date en Q1

- Une autre pour décrémenter

- Et une pour sauvegarder (pense à modifier le chemin de sauvegarde)

Bon courage

un grand merci cousinhub,

la date et l'enregistrement = nickel !

par contre petit soucis avec les doublons ou bien je m'y prends mal....

si j'introduis dans la colonne C une quatrième fois le nombre 1823, un petit 4 n’apparaît pas dans la colonne B

et si j'introduis une deuxième fois un nombre déjà présent cela ne fonctionne pas non plus....

mais en tout cas

Re-,

Attention, cette formule ne peut fonctionner que si la colonne C est triée (comme tu l'avais dit dans ton énoncé...)

oui, en effet tu as raison et ce n'est pas trop grave de passer par le tri.

par contre, regarde le fichier ci-joint, j'ai ajouté 654 et il n'y a pas de 2 à coté du 2ème

et 1823 ne se numérote pas au delà de 3

Re-,

Effectivement....

Maintenant, si tu recopies les formules dans la colonne B, peut-être????

Re-,

Sinon, si tu ne veux pas trier selon la colonne C, tu peux mettre cette formule dans la cellule C4 :

=SI(NB.SI(C:C;C4)=1;"";NB.SI($C$4:$C4;$C4))

Et recopier vers le bas

oui j'ai oublié de tirer la formule jusqu'en bas..... sorry

par contre je remarque deux choses,

la première et ça ne doit pas être trop grave, quand je tire la formule j'ai un zéro qui apparaît jusqu'en bas, mais la numérotation fonctionne convenablement.

la deuxième, c'est que en fin de journée, on doit pouvoir effacer les trains qui sont partis.

pour cela j'avais créé un bouton corbeille avec une petite macro... mais le problème c'est que les formules (colonnes B et D) fichent le camp quand j'efface.... après réflexion, c'est logique.....

y a-t-il moyen d'empêcher l'effacement des formules lorsque l'on efface les contenus ?

Re-,

Sinon, si tu ne veux pas trier selon la colonne C, tu peux mettre cette formule dans la cellule C4 :

=SI(NB.SI(C:C;C4)=1;"";NB.SI($C$4:$C4;$C4))

Et recopier vers le bas

Dans la cellule C4 ?

car dans cette colonne je dois introduire les numéros....

Euh,

B4, bien sûr....

oui c'est mieux comme cela nickel ca marche

par contre par mon dernier message, je ne sais pas si tu avais vu le précédent ?

oui j'ai oublié de tirer la formule jusqu'en bas..... sorry

par contre je remarque deux choses,

la première et ça ne doit pas être trop grave, quand je tire la formule j'ai un zéro qui apparaît jusqu'en bas, mais la numérotation fonctionne convenablement.

la deuxième, c'est que en fin de journée, on doit pouvoir effacer les trains qui sont partis.

pour cela j'avais créé un bouton corbeille avec une petite macro... mais le problème c'est que les formules (colonnes B et D) fichent le camp quand j'efface.... après réflexion, c'est logique.....

y a-t-il moyen d'empêcher l'effacement des formules lorsque l'on efface les contenus ?

Re-,

Avec le changement de page, j'avais pas vu...

Pour la formule, on va plutôt mettre celle-ci :

=SI(OU(NB.SI(C:C;C4)=1;$C4="");"";NB.SI($C$4:$C4;$C4))

et pour l'effacement des données uniquement, remplace ton code par :

Selection.SpecialCells(xlCellTypeConstants, 23).ClearContents

Ainsi, les formules sont préservées

parfait !!!

par contre je viens de faire les derniers tests d'enregistrements et il a quelque chose qui coince :

dans l'idéal; voici comment je voyais l'utilisation du fichier:

nous travaillons à pause et devons fermer et ouvrir ce même fichier à chaque prestation.

A minuit, il faut enregistrer le fichier à la date du jour précédent.

Le but est d'avoir ce fichier (que je viens de renommer "GraphSDC") dans un répertoire à la racine du C:\

l'enregistrement journalier que l'on fait à minuit doit s'enregistrer dans un répertoire archive sur un autre disque.

ce que je constate maintenant, c'est que quand je clique sur la disquette, le fichier s'enregistre bien dans mon dossier d'archives (temporaire que j'ai modifié dans la macro pour faire les tests) mais le fichier ouvert original se voit son nom modifié dans la barre supérieure de la fenêtre avec le nom "GraphSDC_AAAA_MM_JJ".

Donc quand je vais devoir fermer le fichier, je vais devoir à chaque fois faire "enregistrer sous" en remodifiant le nom de fichier "GraphSDC_AAAA_MM_JJ" en "GraphSDC"

up

et mise à jour du fichier après résolution de quelques petits problèmes non liés à cette demande

7graphsdc.xlsm (176.32 Ko)

Bonsoir,

vite fait avant de manger...

et si tu pensais à enregistrer en "modèle Excel (prenant en charge les macro) *.xltm"?

ainsi, ton fichier originel ne bouge pas, tu devras quoiqu'il arrive l'enregistrer avec un autre nom....

Peut-être?

PS, l'enregistreur de macro peut sûrement t'aider....

je viens d'essayer de modifier l'extension, ainsi que le nom d'enregistrement dans ta macro, mais cela ne fonctionne pas.

alors oui je peux refaire une macro, mais quand je le fait, je suis obligé de lier la nouvelle macro à l'icôme "disquette" et donc la tienne n'est plus active et la date automatique ne s'applique plus....

Re-,

je me suis mal expliqué...

Ton fichier initial s'appelle "GraphSDC.xlsm"

Il est donc vierge de toutes données.

tu l'ouvres, et tu fais "Fichier/"Enregistres sous"

Tu choisis ton répertoire, puis dans "Type", tu sélectionnes "modèle Excel (prenant en charge les macro) *.xltm"

Attention, par défaut, Excel va vouloir l'enregistrer dans le répertoire "modèles office personnalisé"...

Tu choisis le bon répertoire, puis "Enregistrer"

Ton fichier s'appelle maintenant "GraphSDC.xltm"

A partir de maintenant, tu ne pourras plus le modifier, sauf si tu refais la même procédure, et toute demande d'enregistrement te forcera à donner un nouveau nom à ton fichier mis à jour...

Je ne sais pas si j'ai été plus clair...

je reprends point par point en répondant si dessous dans ta réponse :

Re-,

je me suis mal expliqué...

Ton fichier initial s'appelle "GraphSDC.xlsm"

Oui

Il est donc vierge de toutes données.

Attention que le fichier GraphSDC doit conserver toutes ses données de collègue en collègue et c'est seulement à minuit que l'on enregistre le fichier et que les données inutiles sont supprimées pour commencer une nouvelle journée, mais des données de la veille sont toujours présentes

tu l'ouvres, et tu fais "Fichier/"Enregistres sous"

OK

Tu choisis ton répertoire, puis dans "Type", tu sélectionnes "modèle Excel (prenant en charge les macro) *.xltm"

OK

Attention, par défaut, Excel va vouloir l'enregistrer dans le répertoire "modèles office personnalisé"...

Tu choisis le bon répertoire, puis "Enregistrer"

OK

Ton fichier s'appelle maintenant "GraphSDC.xltm"

Oui effectivement

A partir de maintenant, tu ne pourras plus le modifier, sauf si tu refais la même procédure, et toute demande d'enregistrement te forcera à donner un nouveau nom à ton fichier mis à jour...

J'ouvre le nouveau fichier *.xltm et quand j'appuye sur la disquette, il se change à nouveau en *.xlsm

Je ne sais pas si j'ai été plus clair...

oui bien sûr mais je dois avoir loupé encore quelque chose.....

Bonjour,

On va donc abandonner l'idée du "modèle"...

Par contre, on peut enregistrer comme une copie...

Essaie avec ce code d'enregistrement :

ActiveWorkbook.SaveCopyAs Filename:= _
        "C:\Users\Ton Nom\Documents\Excel\base données engins " & Format([Q1], "yyyy_mm_dd") & ".xlsm"

Ainsi, tu as fait une sauvegarde du fichier original, et tu conserves le fichier d'origine

Peut-être?

Rechercher des sujets similaires à "enregistrement fichier fonction tri"