Historique saisie feuilles excel
Fermé
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
-
Modifié le 13 janv. 2018 à 02:24
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 15 janv. 2018 à 11:41
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 15 janv. 2018 à 11:41
A voir également:
- Historique saisie feuilles excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Fusionner feuilles excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Aller à la ligne excel - Guide
4 réponses
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
13 janv. 2018 à 06:54
13 janv. 2018 à 06:54
Bonjour,
Ce code marche tres bien ....!!!!!!!
Ce code marche tres bien ....!!!!!!!
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
Modifié le 13 janv. 2018 à 18:02
Modifié le 13 janv. 2018 à 18:02
Bonjour,
Ton code ne fonctionne pas aussi bien qu'il devrait :
- lorsque plusieurs cellules sont modifiées simultanément (copier/ coller, Incrémenter en tirant une plage de valeurs, saisie matricielle, ...)
- lorsque la valeur n'est pas modifiée.
Voici une proposition :
Attention, lorsque c'est une macro qui modifie une valeur, pour éviter que ce code se plante sur le Undo, il faut prévoir dans la macro, avant de modifier la valeur, de désactiver les évènements puis les réactiver après.
Cordialement
Patrice
Ton code ne fonctionne pas aussi bien qu'il devrait :
- lorsque plusieurs cellules sont modifiées simultanément (copier/ coller, Incrémenter en tirant une plage de valeurs, saisie matricielle, ...)
- lorsque la valeur n'est pas modifiée.
Voici une proposition :
Option Explicit Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range) Dim dic As Object, clé As Variant Dim sel As Range, act As Range, tgt As Range, usr As Range, cel As Range Dim val As Variant Dim n°L As Long If sh.Name <> "Modifications" Then Set dic = CreateObject("Scripting.Dictionary") 'Mémoriser le contexte initial Set sel = Selection Set act = ActiveCell With Worksheets("Modifications") 'Mémoriser les nouvelles valeurs non vides Set usr = Intersect(Target, sh.UsedRange) If Not usr Is Nothing Then val = usr.Value For Each cel In usr.Cells If cel.Formula <> "" Then dic(cel.Address) = cel.Value End If Next cel End If Application.EnableEvents = False Application.Undo Set tgt = Intersect(Target, sh.UsedRange) If Not tgt Is Nothing Then For Each cel In tgt.Cells n°L = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 If dic.Exists(cel.Address) Then If cel.Value <> dic(cel.Address) Then .Cells(n°L, 1).Value = sh.Name .Cells(n°L, 2).Value = cel.Address .Cells(n°L, 3).Value = Now .Cells(n°L, 4).Value = cel.Value .Cells(n°L, 5).Value = dic(cel.Address) .Cells(n°L, 6).Value = Environ("username") End If dic.Remove cel.Address Else .Cells(n°L, 1).Value = sh.Name .Cells(n°L, 2).Value = cel.Address .Cells(n°L, 3).Value = Now .Cells(n°L, 4).Value = cel.Value .Cells(n°L, 5).Value = "" .Cells(n°L, 6).Value = Environ("username") End If Next cel End If If dic.Count > 0 Then For Each clé In dic.Keys n°L = .Cells(.Rows.Count, "A").End(xlUp).Row + 1 .Cells(n°L, 1).Value = sh.Name .Cells(n°L, 2).Value = clé .Cells(n°L, 3).Value = Now .Cells(n°L, 4).Value = sh.Range(clé).Value .Cells(n°L, 5).Value = dic(clé) .Cells(n°L, 6).Value = Environ("username") Next clé dic.RemoveAll End If Target.ClearContents If Not usr Is Nothing Then usr.Value = val End With 'Rétablir le contexte initial sel.Select act.Activate Application.EnableEvents = True End If End Sub
Attention, lorsque c'est une macro qui modifie une valeur, pour éviter que ce code se plante sur le Undo, il faut prévoir dans la macro, avant de modifier la valeur, de désactiver les évènements puis les réactiver après.
Cordialement
Patrice
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
13 janv. 2018 à 18:14
13 janv. 2018 à 18:14
Merci beaucoup pour tous ses codes et explications, je test et vous redis?
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
13 janv. 2018 à 19:06
13 janv. 2018 à 19:06
J'ai essayé les 2 propositions et navré d'annoncé que les 2 me donne un message d'erreur :
" La méthode 'Undo' de l'objet à échoué "
" La méthode 'Undo' de l'objet à échoué "
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
Modifié le 13 janv. 2018 à 19:10
Modifié le 13 janv. 2018 à 19:10
Tu n'as pas appliqué ce que je t'ai dis après le code ! (désactiver les évènement ...), à moins que tu n'utilises une version Excel antérieure à 2007.
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
13 janv. 2018 à 19:15
13 janv. 2018 à 19:15
Alors non je ne suis pas en version antérieur excel, je travaille sur office 2013.
Donc pour être sur de bien faire car je ne suis pas hyper pro en excel vba.
Ton code je le met dans worbook??
Et quand tu dis désactiver les événements ca consiste à faire quoi??
Navré d'être ausii nul
Donc pour être sur de bien faire car je ne suis pas hyper pro en excel vba.
Ton code je le met dans worbook??
Et quand tu dis désactiver les événements ca consiste à faire quoi??
Navré d'être ausii nul
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
13 janv. 2018 à 19:43
13 janv. 2018 à 19:43
Exemple :
https://mon-partage.fr/f/drOtdWsM/
https://mon-partage.fr/f/drOtdWsM/
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
13 janv. 2018 à 20:07
13 janv. 2018 à 20:07
Encore merci pour ton aide.
Mais je pense qu'il doit y avoir un conflit avec un autre code car j'ai remis les codes et il me met toujours le code erreur.
Puis je abusé et t'envoyé mon fichier afin que tu jette un coup d’œil de l'ensemble et peux être trouver mon problème.
Sinon C'est pas grave.
Mais je pense qu'il doit y avoir un conflit avec un autre code car j'ai remis les codes et il me met toujours le code erreur.
Puis je abusé et t'envoyé mon fichier afin que tu jette un coup d’œil de l'ensemble et peux être trouver mon problème.
Sinon C'est pas grave.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 778
13 janv. 2018 à 22:18
13 janv. 2018 à 22:18
Utilises mon-partage.fr
lamarie028
Messages postés
8
Date d'inscription
samedi 13 janvier 2018
Statut
Membre
Dernière intervention
13 janvier 2018
13 janv. 2018 à 23:13
13 janv. 2018 à 23:13
Merci encore pour ton aide.
Juste une petite explication c'est un fichier pour reconditionner un sac médical.
Pour accéder aux feuille excel : id:admin et mdp : admin.
De même pour accéder code vba : admin.
https://mon-partage.fr/f/9Wy7HUKg/
Juste une petite explication c'est un fichier pour reconditionner un sac médical.
Pour accéder aux feuille excel : id:admin et mdp : admin.
De même pour accéder code vba : admin.
https://mon-partage.fr/f/9Wy7HUKg/
f894009
Messages postés
17205
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
19 octobre 2024
1 709
14 janv. 2018 à 08:33
14 janv. 2018 à 08:33
Bonjour,
Je regarde la chose
A+
Je regarde la chose
A+
13 janv. 2018 à 10:21
13 janv. 2018 à 11:48
cellule d'origine la modification n’apparaît pas???
Chez moi, si je modifie une cellule, cette modif est effective dans la dite cellule..!!!!!!
13 janv. 2018 à 11:58
Comment modifier le code de sauvegarde de saisie pour certaine feuilles excel exclusivement et non tout le classeur.
Modifié le 13 janv. 2018 à 16:04
certaine feuilles excel exclusivement
modifiez cette ligne en ajoutant
avec autant de And que de test <> si moins de feuilles <> que de feuilles de saisie
autrement ce sont des test Or etc
une facon de coder un peut plus structure: