Conserver une valeur dans un tableau même si

Bonjour,

j'ai un petit soucis, je voudrais conserver le résultat d'un calcul même si j'ai changé une valeur dans une autre feuille.

exemple aujourd'hui "1/10/2020 à 10:00h" j'ai un total de kilo de 3600kg/h et que je contrôle en faisant une pesée et que je note ces résultats dans une autre feuille et que dans cette même feuille je fais plusieurs contrôle à différents moment de la journée et que je note tous cela dans cette feuille et que dans la même journée ou le jour suivant, je change le total des kilos sur la feuille dédié à cela et bien tous les contrôles effectués auparavant change.

donc ce que je voudrais c'est que ces valeurs ne change pas et soit enregistré au fur et à mesure des saisies et qu'a l'ouverture de ce classeur le jour d'après ou si je change une valeur quelque heures plus tard rien ne change dans les données auparavant.

je vous joint un fiche pour vous montrer l'exemple ( il faut rentrée les valeurs dans les cellule blanche)

je vous prie de m'excuser des fautes d'orthographe.

16classeur1.xlsx (14.44 Ko)

Bonjour,

Afin de bien comprendre, serait il possible de développer le mode opératoire et ses objectifs ?

Les valeurs saisies sont dans la feuille "L1"?

La feuille total poids correspond à quoi ?

Serait il possible d'indiquer les cellules à fixer ?

voilà des réponses Zalevo

mode opératoire et ses objectifs ?

avoir un suivie et toujours le même classeur

Les valeurs saisies sont dans la feuille "L1"?

il faut rentrée les valeurs des contrôles dans la feuille "L1" cellule blanche les gris sont calculer automatiquement

La feuille total poids correspond à quoi ?

Au poids qu'il devrait y avoir et il peut changer selon la demande "variable" et bien-sur c'est à toi de noter ce que tu désir moi j'ai mis 600kg et demain tu peux mettre 500kg ou 0kg

et c'est là que les probléme feuille L1 commence car les valeurs rentrée change, ce que je ne veux pas

il y a comme solution F2 F9 avant de sauvegarder, mais je voudrais protéger la feuille pour éviter les mauvaises manipulations (plusieurs personnes sur le même classeur)

donc il faudrait automatiser cela....

bonjour,

pour etre plus chair je vous joint un autre fichier et une image

test

ce que je voudrais, c'est enregistré la feuille la réouvrir changer le poids mais garder les valeurs enregistrer précédemment, tous cela sur une feuille verrouiller. exemple sur l'image jointe

11classeur1.xlsx (14.68 Ko)

Bonjour,

Si j'ai bien compris, vous avez une feuille journalière de suivi des pesées et vous souhaitez archiver les données dans une base annuelle ? Si c'est bien le cas, voici quelque chose qui devrait se rapprocher de votre besoin.

Il faudra juste songer à se rendre sur le volet Développeur/Visual BAsic/ ThisWorkbook et enlever l'apostrophe devant la ligne call archivage.

Ainsi, avant chaque fermeture du classeur, vos données saisies seront copiées dans le second onglet créé.

Et si jamais vous vouliez adapter ce code à votre vrai fichier, il faudra cependant créer des tableaux structurés comme je l'ai fait et remplacer dans le code toutes les références en conséquence (je pense en l'occurrence aux noms des tableaux).

Cordialement,

11classeur1.xlsm (32.65 Ko)

bonjour,

tout d'abord merci 3GB, donc vous avez très bien compris ce que je veux, rentrée des suivis de pesée journalière (disons par équipe) et de pouvoir les archiver.

Il faudra juste songer à se rendre sur le volet Développeur/Visual BAsic/ ThisWorkbook et enlever l'apostrophe devant la ligne call archivage.

Je n'ai pas vu d'apostrophe " ' " devant la ligne

je n'ai pas réussi à faire fonctionner le tableau Glaspull

Et si jamais vous vouliez adapter ce code à votre vrai fichier, il faudra cependant créer des tableaux structurés comme je l'ai fait et remplacer dans le code toutes les références en conséquence (je pense en l'occurrence aux noms des tableaux).

Et oui il reste encore les autres ligne (Ligne 2 et ligne 3)

Cordialement

je n'ai pas réussi à faire fonctionner le tableau Glaspull

Si désolé il y avait des formules disparue voilà pourquoi je veux protéger la feuille

donc reste plus qu'a faire la meme chose pour Ligne 2 et Ligne 3

un peu d'aide oui pourquoi pas :)

sinon je teste encore et je reviens vers toi 3GB

Bonjour Domtous,

Si vous avez vu la ligne Call archivage sans apostrophe, c'est que je l'ai enlevée alors (et j'ai oublié l'avoir fait).

Il y avait des formules disparues ? sur quelles colonnes ? Normalement, pas besoin de protection pour ça. C'est le code qui est à adapter...

Comment ça sur les lignes 2 et 3 ? Vous parlez de vos en-têtes de tableau ? Ça ne sert à rien de les reprendre vu que vous avez déjà une ligne d'en-têtes sur le tableau suivi.

Cordialement,

Bonjour 3GB,

oui il y avait des formules disparues sur toute la ligne 31, 32, 33 maintenant ok

l2 poids

oui il y a plusieurs lignes (3) et je voudrais séparer chaque tableau dans une feuille

exemple:

feuille Glaspull

Feuille Poids L1

Feuille Poids L2

Feuille Poids L3

Feuille archive de tout cela ou détailler

avec des boutons de déplacement sur une feuille menu userform car il y a encore beaucoup d'autre feuille dans ce classeur

menu

Franchement, je comprends rien du tout...

Ce que j'ai fait est reproductible. Donc si tu as 3 tableaux sur Glaspool, tu crées 2 tableaux structurés supplémentaires, comme je l'ai fait. Tu crée 2 feuilles supplémentaires semblables à Suivi (en y créant sur chacune un tableau structuré comme je l'ai fait pour Suivi).

Ensuite, tu copies la macro Archivage 2 fois en nommant les copies Archivage2 et Archivage3 par exemple. Et tu adaptes juste le code avec les bonnes références (noms de feuilles et noms de tableaux). Et voilà !

Si tu veux appeler les macros via l'userform, tu places dans ton code pré-existant Call Archivage à l'endroit désiré. Et le tour est joué...

En ce qui concerne la feuille archive, je n'ai pas compris...

Franchement, je comprends rien du tout...

tu as raison, je suis entrain de faire comme tu dis 3 tableaux sur la meme feuille une fois finis je te montre

Re

donc voilà les tableaux réaliser, le reste c'est un peu plus dur pour moi

donc un peu d'aide 3GB

Re Domtous,

Merci de t'être occupé des tableaux.

Le code est différent maintenant. Il y a une procédure "Archiver" (à activer cette fois-ci dans thisworkbook) déclenchée avant la fermeture du classeur.

Cette procédure effectue le tri pour les 3 tableaux (en lançant ArchivageTable) et sauvegarde le fichier (reste de code propre à Archiver). Attention, tout changement de noms (feuille ou tableau) devra donner lieu à un changement correspondant dans le code au risque de le faire bugger !

Si tu voulais par hasard, exécuter ces macros individuellement, il faut mettre la ligne adéquate au sein du code d'exécution :

Call ArchivageTable(1) 'pour les données de Line1
Call ArchivageTable(2) 'pour Line2
Call ArchivageTable(3) 'Line3

A bientôt,

re 3GB,

tu es vraiment un dieu de Excel merci encore

le truc c'est que je n'arrive pas faut-il faire quelque chose dans thisworkbook, quand je quitte il ne me demande rien et aucune archive à l'ouverture.

cdt

!!!

En fait, il faut enlever l'apostrophe pour activer la macro. Ensuite il faut fermer le classeur (c'était ça la contrainte au début : archiver à la fermeture). Et là, ça se lance !

je m'en doutais mais le problème c'est que je ne la vois pas

Bizarre, bizarre !

DANS MODULE THISWORKBOOK

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call Archiver
End Sub

DANS MODULE NORMAL

Sub Archiver()

If Not MsgBox("Confirmez-vous l'archivage des données de chaque ligne ?", _
vbYesNoCancel, "Demande de confirmation") = vbYes Then
    MsgBox "Fermeture sans archivage des données"
    GoTo Sauv
End If

Dim NbArchives%, i%
NbArchives = 3

For i = 1 To NbArchives
    Call ArchivageTable(i)
Next i

Sauv:
ThisWorkbook.Save

End Sub

Sub ArchivageTable(NumeroLigne As Integer)

Dim source As Range, saisie As Range, dest As Range, import As Range
Dim NBC%, NBL%, NVL%
Dim Donnees()

With Sheets("Glaspull").Range("Ligne" & NumeroLigne) 'sur tableau saisie journalière
    NBC = .Columns.Count 'nombre colonnes
    NBL = Application.CountIf(.Columns(1), "<>") 'nombre lignes non vides
    If NBL < 1 Then Exit Sub 'sortie procédure si colonne date tableau saisie vide
    Set source = .Resize(NBL, NBC) 'definition zone de valeurs à copier (redimension)
    Set saisie = .SpecialCells(xlCellTypeConstants, 23) 'définition zone saisie
End With

With Sheets("L" & NumeroLigne).Range("RecapL" & NumeroLigne) 'sur tableau de suivi annuel
    NVL = .Application.CountIf(.Columns(1), "<>") 'position dernière ligne
    Set dest = .Resize(NBL, NBC).Offset(NVL, 0) 'déf zone destination collage donnees (redimension, décalage)
End With

Donnees = source.Value 'tableau prend valeurs dans source
dest.Value = Donnees 'dest recoit valeurs du tableau

If Not saisie Is Nothing Then saisie.ClearContents 'effacer les saisies journalières

End Sub

oui elle était bien là "DANS MODULE THISWORKBOOK", donc je l'ai supprimé :)

mais cela ne fonctionne toujours pas

2020 09 11 16 32 42

Mince, j'ai nommé le module comme la procédure.

Peux-tu modifier le nom de la procédure, comme tu le souhaites sur cette ligne et dans le module "Archiver". Il faut juste que le nom ne soit pas déjà pris. Je sais pas moi, enregistrement par exemple

Edit : tiens le fichier plutôt

Rechercher des sujets similaires à "conserver valeur tableau meme"