Logging - Code qui fonctionnait et qui ne fonctionne plus

Bonjour,

Sous Excel (Microsoft 365, Version 2306, Build 16529) et W10, le code suivant fonctionnait .... il y a de nombreux utilisateurs, possible qu'un de ceux-ci aurait altéré le code. Un mot rapide d'explication : 1) Première partie permet d'activer le suivi 2) La seconde partie copie les changements dans une feuille nommée "log". J'ai un doute sur la ligne "Set lo = Worksheets("log").Range("LogData").ListObject". Comment vérifier que LogData est bien défini ? De ce que j'ai pu tracer, la condition suivante est validée : ".InsertRowRange Is Nothing"

Merci pour vos conseils et aides,

Cordialement,

Option Explicit

Dim PreviousValue, bln As Boolean, LogEnable As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

LogEnable = Cells(2, 5)

If LogEnable Then
If Target.CountLarge > 1 Then
MsgBox "Please select a single cell !...", 64, "Information"
bln = False
Else
PreviousValue = Target.Value
bln = True
End If
Else
bln = False
End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lo As ListObject, rCell As Range, arr(7)
If bln = True Then
If Target.Value <> PreviousValue Then
Set lo = Worksheets("log").Range("LogData").ListObject
With lo
If .InsertRowRange Is Nothing Then
Set rCell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
Else
Set rCell = .InsertRowRange.Cells(1)
End If

End With
arr(0) = ActiveSheet.Name
arr(1) = Cells(Target.Row, 3)
arr(2) = Format(Now(), "dd/mm/yyyy, hh:mm:ss")
arr(3) = Application.UserName
arr(4) = Cells(1, Target.Column)
arr(5) = Target.Address
arr(6) = PreviousValue
arr(7) = Target.Value
rCell.Resize(, 8) = arr
End If
End If
End Sub

Edit modo : Mis code entre balises

Bonjour

Merci de pensez à utiliser les balises de code lorsque vous postez un code. J'ai rectifié votre post

Pour votre souci, lorsque vous allez dans le gestionnaire de noms, vous voyez quoi dans le nom "Logdata" ?

Cordialement

Hello,

Voici ce que je peux lire : =log!$A$2:$M$1461

Cela me semble correct. Non ?

Cordialement,

M

image

1. Dans le nom défini, en dessous, la rubrique "Fait référence à" est grisée ou pas ?

2. Puis un truc bizarre, vous avez quoi comme donnée en ligne 2. Au vu de votre image on dirait que la ligne 2 ne contient aucune donnée alors que LogData est définit jusque la ligne 1461 ??

Hello,

Pour la question 1) => Scope = Workbook (J'utilise une version anglaise). Elle n'est pas grisée mais le contenu n'est pas accessible ...

image

Pour la question 2) => La première ligne contient les titres des colonnes et 1461 était la dernière ligne remplie du temps où le code fonctionnait (Je ne sais pas trop comment définir une zone dont la dimension va évoluerà chaque insertion)

Merci !

Pour la question 1) => Scope = Workbook (J'utilise une version anglaise). Elle n'est pas grisée mais le contenu n'est pas accessible ...

Non elle est grisée comme je vous le disais et donc inaccessible à cet endroit. Donc ce coté c'est ok. La tableau est bien au format structuré et Logdata est bien défini.

La première ligne contient les titres des colonnes et 1461 était la dernière ligne remplie du temps où le code fonctionnait (Je ne sais pas trop comment définir une zone dont la dimension va évoluerà chaque insertion)

Ok donc là, toutes vos lignes sont vides de données

faites ceci :
- Sélectionnez les cellules A2 à M1461
- click droite et choisir l'option "Supprimer" --> "lignes de tableau" --> ok. (Attention vous devez absolument voir l'option "lignes de tableau" !!)

Faites un test et dites moi

Bonjour,

Cela fonctionne ! Merci beaucoup pour l'efficience de vos conseils.

Cordialement, Agréable week-end

Marc

Ok. Merci de penser à clôturer le sujet

Cordialement

Rechercher des sujets similaires à "logging code qui fonctionnait fonctionne"