Modifier un code VBA

riton00

XLDnaute Occasionnel
Bonsoir à tous

Ci-joint un code que j'ai récupérer qui permet de m'indiquer dans la cellule A1 la dernière modification effectué par le moyen d'une date avec l'heure de tous textes ou de chiffres effectué dans la plage A10:p100 par contre il ne prend pas en compte les ajouts de ligne de colonnes ou retraits, changement de couleur dans du texte ni les couleurs dans les cellule etc…
Y a-t-il moyen de modifier ce code pour obtenir le maximun de ces fonctions.

Merci

Option Explicit
Const celv = "A10:Z100"

Const celd = "A1"
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range(celv)) Is Nothing Then
If Target.Value <> "" Then Range(celd).Value = Now
End If
End Sub

Slts
 

cp4

XLDnaute Impliqué
Peut-être comme ci-dessous à tester

VB:
Const celv = Range("A").UsedRange
 

riton00

XLDnaute Occasionnel
Bonjour cp4, le forum

Merci pour pour cet essai mais.... non concluant puisque j'ai une erreur de compilation, "constante requise"




Slts
 

cp4

XLDnaute Impliqué
On navigue à l'aveuglette. Un petit fichier sans données confidentielles aurait facilité la compréhension du problème.
 

riton00

XLDnaute Occasionnel
Désolé....! Bien que dans le fichier joint ne figure que la macro qui est fonctionnelle,
mais qu'en lisant le petit énoncé joint avec le fichier il est peut-être suffisant pour comprendre ce que je voudrais obtenir.
au cas ou, si toujours pas de compréhension faite-le moi savoir

Merci
 

Fichiers joints

cp4

XLDnaute Impliqué
un essai, supprime les constantes
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target <> Range("A1") And Target.Value <> "" Then Range("A1").Value = Now
End Sub
 

riton00

XLDnaute Occasionnel
Bonsoir,
Désolé pour le retour tardif, après essais, cela ne fonctionne toujours pas lors de changement de couleur de police ni d'ajout de couleur dans cellule et lors d'une insertion de ligne ou colonne j'ai une erreur d'exécution 13
 

cp4

XLDnaute Impliqué
Bonjour,
Ne sachant pas comment reproduire ton erreur, je ne peux plus t'aider.

Bonne journée.

ps: fais un essai avec les autres evènements (ex: selectionChange)
 

laurent950

XLDnaute Impliqué
Bonsoir

lien utile : https://excel-malin.com/a-la-une/liste-complete-evenements-vba-excel-events/

VB:
Option Explicit
Dim celluleAvant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim celv As Range
Set celv = Range("A2:Z100")
Dim celd As Range
Set celd = Range("A1")
  If Not IsEmpty(celluleAvant) Then
        If Not Intersect(Range(celluleAvant), celv) Is Nothing Then
            Calculate
            celd.Value = Now
        End If
  End If
celluleAvant = Target.Address
End Sub
 
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas