Evolution tableau

Bonsoir a tous

j'ai un tableau (gestion de stock) et je souhaiterai de l'aide pour le faire évolué ...

ce tableau a 9 colonnes et une quarantaines de lignes...(voir fichier joint)

un mail automatique vers plusieurs adresse est envoyé après remplissage

je souhaiterai qu'a l'issu de l'envoi qu'il se réinitialise ou plutot que la colonne "stock final " devienne " stock initial "

et que la colonne " sortie consommé ' revienne a zéro

merci pour votre aide futur

Bonjour,

Je n'ai pas réussi à accéder au fichier donc je ne garantis pas que ma réponse vous satisfasse.

Je devine que les colonnes "STOCK INITIAL" et "SORTIES" sont des saisies et que la colonne "STOCK FINAL" contient des formules (STOCK INIT - SORTIES grosso modo).

Il faut donc placer les 3 lignes de code qui suivent en fin de macro (après l'envoi des mails) :

ActiveSheet.Range("NOMTABLEAU[Stock final]").copy

ActiveSheet.Range("NOMTABLEAU[Stock initial]").PasteSpecial Paste:=xlPasteValues

ActiveSheet.Range("NOMTABLEAU[Sorties consommées]").ClearContents

Attention, bien dans cet ordre, sinon vos données pourraient être modifiées.

Et normalement, vous devriez vous retrouver avec le stock final (T+1) valant le stock initial (T+1), lui-même valant le stock final (T) que vous venez de copier et les sorties (T+1) toutes à zéro.

Cordialement,

bonsoir 3 GB

oui c'est ça pour stock initial et sortie et il y a bien une formule pour le stock final

j'ai appliqué ton code dans l'ordre mais je me retrouve avec un code d'erreur

erreur d'exécution 1004 erreur définie par l'application ou par l'objet

que doit-je faire ?

merci

voici le codage ci-

joint

Oui, c'est normal puisque Range("NOMTABLEAU...") est un exemple qui fait référence au tableau hypothétique dont le nom est NOMTABLEAU et contenant les 3 colonnes "Stock initial", "Sorties consommées" et "Stock final".

Il faut que tu reprennes le code en modifiant avec tes références à toi (dont je n'ai pas connaissance vu que je n'ai pas vu ton fichier).

Aussi, j'ai supposé que tu lancerais la macro depuis la feuille dans lequel se trouve le tableau. Si ce n'est pas le cas, il faudra enlever la partie "ActivesSheet." sur chacune des lignes.

Si tu fais des essais avec ton tableau, ça devrait marcher normalement.

Je viens de voir que tu as déjà effectué le remplacement.

Il faut essayer d'enlever "ActiveSheet" pour voir. Ou avant les 3 lignes, éventuellement activer la feuille sur laquelle se trouve ton tableau.

tu as mon codage sur le dernier lien et toujours meme code d'erreur

Et ça ne marche toujours pas ?

En l'état, je ne peux pas me prononcer, n'ayant le fichier de base sous les yeux.

Il faut s'assurer premièrement que le tableau en question est un tableau nommé, et qu'il est bien libellé "Gestion de stock" (voir dans gestionnaire de noms).

Ensuite que les noms des colonnes sont corrects.

Après, avant les 3 lignes que je t'ai proposées, ajouter une ligne "Feuille.Activate" (où "Feuille" est l'onglet contenant le tableau visé).

Enfin, si ça ne fonctionne toujours pas, c'est alors que le problème se porte sur le haut de code : Il y a des variables objets à libérer et il faudrait éventuellement quitter outlook et surtout activer excel :

Application.Wait (Now + TimeValue("0:00:10"))

AppActivate "Microsoft Excel"

Workbooks("Nom du fichier concerné").Activate 'si plusieurs fichiers ouverts

Ces lignes supplémentaires seraient à insérer avant celles dont nous avons déjà parlé.

J'espère que l'une de ces solutions fonctionnera.

ah oui la sa devient plus compliqué pour moi

comment puis-je te faire parvenir mon tableau ?

Il faut que tu joignes le fichier à un message, en cliquant sur la petite image avec une feuille marquée d'un X, juste au-dessus du corps du message.

voila le fichier

c'est bon ?

code protection ( RP2020)

Et bien, ce n'est pas évident puisque le fichier est en partie protégé.

Mais je dirais a priori que le tableau n'a pas été nommé.

Il faut donc :

1) Aller dans "ETAT DES STOCKS", cliquer sur une cellule du Tableau, faire Ctrl+A, puis allez sur le volet d'excel "INSERTION" > Tableau (avec des en-têtes bien sûr) et le renommer dans la petite case Nom du tableau (toujours dans le volet INSERTION) exactement "SuiviStocks".

1 bis) Il y a des options de mise en forme du tableau. Il est possible de choisir de le laisser tel qu'il était présenté.

2) Aller sur la colonne "STOCK FINAL" et supprimer l'espace de trop.

3) Copier ces lignes à la suite de ton code :

'Application.Wait (Now + TimeValue("0:00:10"))
'AppActivate "Microsoft Excel"
'Workbooks("Gestion-de-stock").Activate 'si plusieurs fichiers ouverts

'-----OBSERVATION : SI BUG CONTINUENT, RENDRE ACTIVES LES 3 LIGNES CI-DESSUS

Sheets("ETAT DES STOCKS").Activate

Call EditionPDF

Range("SuiviStocks[STOCK FINAL]").Copy
Range("SuiviStocks[ STOCK CAVE]").PasteSpecial Paste:=xlPasteValues
Range("SuiviStocks[ SORTIE]").ClearContents

MsgBox "L'édition du dernier stock connu a été réalisée avec succès. Le fichier a été actualisé"

End Sub

Sub EditionPDF()

Dim Dossier$, Horodatage$, NomFichier$, Extension$, Chemin$

Dossier = ThisWorkbook.Path 'répertoire courant où sera créé le fichier PDF
Horodatage = WorksheetFunction.Text(Now, "YYYYMMDD") 'ou WorksheetFunction.Text(Now, "YYYYMMDD-HHMM") avec les heures et minutes
NomFichier = "Suivi stock " & Horodatage
Extension = ".pdf"
Chemin = Dossier & "\" & NomFichier & Extension

Sheets("ETAT DES STOCKS").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, IgnorePrintAreas:=False

End Sub

4 bis) Il y aura un "end sub à supprimer, c'est normal.

RQ : Il serait préférable de copier ensuite tout le code afin de le déplacer dans le module 1 et d'ensuite le supprimer de son emplacement dans la feuille "ETAT...". Le code propre à une feuille est lié à un évènement sur celle-ci.

Edit : Je viens de voir que tu m'avais donné le code. Essaie de ton côté avec tout ça et je regarderai du mien, probablement demain car il se fait tard.

Bon courage,

ok merci pour tout

bonne nuit

Bonjour 3GB

Alors la je nage complètement non pas parce que t'es explications ne sont pas clair mais simplement parce que je n'y connais pas grand chose ...

le tableau a été fait via plusieurs tutos récupéré sur le net

donc je suis très limiter sur excel ...

je pèche déjà dès la première ligne de ton dernier post ...

1) Aller dans "ETAT DES STOCKS" etc... je n'obtient pas la même chose que toi

si tu pouvais me trouvé une solution prête a l'emploi ça serait vraiment génial ...

j"apprécie fortement ton aide et admire ta connaissance d'excel

bonne journée

Bonjour Laurent,

Je te renvoie ton fichier où j’ai ajouté la réinitialisation que tu désirais. J’ai cependant fait plusieurs modifications :

J’ai supprimé la feuille "BASE PRODUITS" . J’ai essayé d’améliorer le fichier en la conservant mais je me retrouvais face à des contraintes alors que cette feuille n’est pas nécessaire, compte tenu de l’utilisation du fichier.

J’ai légèrement modifié les formules du tableau ETAT, de manière à ce qu’il soit alimenté directement par la saisie dans le journal (dorénavant seul onglet de saisie). Toutes les colonnes à partir de ENTREES contiennent des formules. Les 5 premières sont des colonnes de saisies.

J’ai ajouté une macro permettant de créer une nouvelle ligne dans le tableau de ETAT sans l’altérer et de trier les valeurs par ordre chronologique.

Par ailleurs, j’ai ajouté dans la macro d’envoi du mail l’édition PDF des 2 tableaux (ETAT et JOURNAL) avant la réinitialisation.

Et sinon, je n’ai pas testé le code sur l’envoi du mail. Je n’ai pas outlook et j’ai supposé que ça fonctionnait bien.

Tout ça fonctionne de mon côté mais il est possible que ça bloque encore de ton côté car je n’ai pu utilise

15gestion-stocks.xlsm (51.87 Ko)

r que mon mac. Tiens moi au courant et dis-moi si il y a des choses que tu ne comprends pas.

Bonjour 3GB

Je te remercie pour tout le boulot !

Cependant plusieurs petites choses me gêne la colonne " ENTREES " ne m'intéresse pas

Après l'envoi du mail que j'ai bien reçu la réinitialisation ne ce fait pas

Je souhaite que la valeur du "stock final" vienne dans la cellule "stock cave" et que la cellule "sorties " soit à zéro ainsi que celle "stock final"

car plusieurs équipes auront des " SORTIES "("SORTIES" équivaut au nombre réel de la consommation des différents produits)

et ceci à différentes heures de la journée

Est-il possible que je remette dans l'ordre la liste "produit" comme elle était avant ?

Encore merci pour tout

Sache que je ne suis pas pressé car actuellement a cause du covid il n'y a aucune prestation

Bon dimanche

Re

Après réflexion je pense que la feuille "JOURNAL STOCKS " n'est pas nécessaire ...

merci encore

Re pour la liste laisse comme ça j'avais pas compris le système c'est parfait

merci

Rechercher des sujets similaires à "evolution tableau"