XL 2016 Copier coller pour faire un historique

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cartoon

XLDnaute Nouveau
Bonjour,

Je travaille actuelle sur la fiabilisation d'un suivi d'outillage.
Ce fichier suivi d'outillage est sur excel.
J'ai déjà fait quelque manipulation de VBA mais je reste novice dessus...

Voilà ce que j'aimerais faire :
Dans l'onglet 4 UNI, il faudrait une macro qui copie la ligne d'information ( de A3 à I3) et qui viendrait la coller en A61) dans l'historique. une fois que les cellules A3:I3 seraient toutes remplies.
C'est surement très simple, mais je suis dépassé, je ne m'en sors pas du tout.

Auriez-vous la solution ?

Je mets le fichier en PJ.
 

Pièces jointes

Bonjour Cartoon,
1- Ça va obliger à surveiller en permanence toutes les colonnes E:I pour voir si elles sont pleines ?
Serait il possible d’insérer un bouton archivage qui ferait le travail sur demande ? Sinon on sera obligé d'avoir du code dans chaque feuille pour la surveillance de zones.
Ou est il possible d'ajouter une colonne pour signifier que la ligne est pleine, par ex OK si tout est bon, et déclencher l'action que sur la détection d'OK.
2- une fois la ligne copiée dans Historique, la ligne correspondante dans UNI doit elle être supprimée ?
 
Bonjour Sylvanu,
Merci pour ta réponse.
1- Je ne sais pas si c'est possible de copier/coller au moment au les cellules sont remplies (E:I) car de A à D cela restera toujours remplie.
C'est possible pour la colonne si on peut la masquer, mais si un utilisateur vient changer une donnée, le OK restera du coup ?
Si cela n'est pas possible alors un bouton fera l'affaire
2- Non elle ne doit pas être supprimée, en effet le premier tableau sera l'état des lieux.
 
Bonjour,
Je crois que l'option du bouton est quand même la moins lourde.
Sinon il faudrait scruter en permanence toutes les cellules des colonne E à I pour sauvegarder mais aussi mémoriser toutes les lignes sauvegardée en cas de modifications de cellules si erreur.

Question : La cellule Observations sera t-elle obligatoirement remplie ou peut elle être vide ?
Dans le premier cas, on sauve que si EFGHI est rempli, dans le second cas on ne se préoccupe que de EFGI.
 
En PJ un essai à tester.
1- Un bouton Archivage est présent sur toutes les pages. Un appui sur celui ci archive les données.
2- Tous les boutons Archivage pointent sur la même macro ArchiveData (aucun autre code modifié)
3- La colonne Observations n'est pas testée.
4- Je reconstruit à chaque fois la table d'archivage, ce qui permet de réactualiser les données en cas d'erreur.
J'ai fait quelques tests mais avec tous les déclenchement d'alerte ID et relevé de compteur c'est assez limité.🙂
 

Pièces jointes

C'est super merci beaucoup.
Oui c'est vrai qu'à l'usage le déclenchement d'alerte est trop contraignant...

En revanche, lorsque je modifie une ligne déjà remplie, elle est remplacée dans l'historique.
L'idéal serait qu'elle s'ajoute.
Est-ce possible ?
 
ok. Compris.
Par contre cela va beaucoup plus complexe. Ca veut dire qu'à chaque ligne pleine il faut analyser toute l'archive pour voir si une ligne archivée avec toutes les colonnes n'existe déjà pas ( pour ne pas ré archiver des lignes pleines déjà archivées )
Je regarde.
 
Effacer une archive pour la reconstruire, c'est ne pas avoir d'archive ! 🙁 No comment.

En V3 une version plus pertinente. A vérifier.
Dans cette version Observations est aussi pris en compte. La moindre modification entraîne un archivage.

Par contre à l'usage si la base Archives grossit la mise à jour va s'allonger.
Pour chaque ligne pleine, je parcourt toute l'archive pour vérifier si cette ligne existe ou pas ( avec tous les champs )
A voir à l'usage.
 

Pièces jointes

Ah au fait, un bug dans vos MFC.
Si je mets une date dans Date changement alors les cellules E et G deviennent rouges.
Si j'efface cette date alors les cellules restent rouges au lieu de redevenir vierges puisque la ligne est vide.
 
Aucun problème pour le coup de l'archive 😉
Merci beaucoup pour cela c'est exactement ce qu’il me fallait. C'est vraiment au top 😀

Je vais enlever le message d'alerte car trop lourd.
Euh pour l'histoire des cases rouges oui... En effet il faudrait enlever le rouge si case remplie.
Saurais-tu comment procéder ? (j'en demande beaucoup désolé)
 
Je n'ai pas dit que le message d'alerte était trop lourd. mais ne connaissant pas ce que l'outil attend je mets n'importe quoi ... et il alerte. C'est tout.
Pour le rouge, c'est un joli bug :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    For i = 3 To 53
        If Cells(i, 6) <> "" Then                    ' Si cellule colonne 6 n'est pas vide
            Cells(i, 5).Interior.ColorIndex = 3        ' Alors rouge en 5'
            Cells(i, 7).Interior.ColorIndex = 3        ' Et rouge en 7'
            MsgAlert
        End If
    Next
End Sub
Donc si on efface la valeur en 6 la condition Cells(i, 6) <>"" devient fausse et on saute.
Les cellules 5 et 7 restent dans l'état ... donc rouge. 😀

J'ai changé dans toutes les feuilles par :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    For i = 3 To 49
        If Cells(i, 6) <> "" Then                           ' Si non vide'
            Cells(i, 5).Interior.ColorIndex = 3        ' alors Col5 rouge'
            Cells(i, 7).Interior.ColorIndex = 3        ' et Col7 rouge'
            MsgAlert
        Else                                        ' Sinon on rétablit les couleurs d'origine.
            Cells(i, 5).Interior.ColorIndex = Cells(i, 6).Interior.ColorIndex
            Cells(i, 7).Interior.ColorIndex = Cells(i, 6).Interior.ColorIndex
        End If
    Next
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour