Probleme de macro qui saute

C4rtoons

XLDnaute Junior
Bonjour le Forum,

J'ai un souci avec une macro et je ne comprends pas pourquoi... Ma macro a fonctionnée pendant 4 jours et maintenant elle ne fonctionne plus...

LA premiere partie me sert a mettre en lettre capitale la cellule D3
(mais en essayant de rajouter une partie pour faire la meme chose en D4, ba, maintenant ca ne fonctionne plus)

LA deuxieme partie sert a indiquer la date du jour et la date de la derniere sauvegarde (ca ne fonctionne pas terrible d'ailleure...)

Quelqu'un qui a un peu d'experience pourrait m'aider a tout hazard??

Bonne weekend ;)

code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, [D3]) Is Nothing Then
     Target = UCase(Target)
        End If
End Sub

Private Sub putdate()

    Dim vDate As String
       vDate = Date
       vDate = Format(vDate, "dd mmm yyyy")
       Range("D1") = vDate
    
    Dim Vdatelastsave
        Vdatecreation = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
        Vdatecreation = Format(Vdatecreation, "dd mmm yyyy")
        Range("x1") = Vdatecreation
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Probleme de macro qui saute

Bonjour C4rtoons,

Pour la 1ère et l'intégration de D4, ça devrait donner

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, range("D3:D4")) Is Nothing Then
     Target = UCase(Target)
        End If
End Sub

Pour le reste je ne sais pas, je n'ai pas compris pourquoi ça ne fonctionne pas bien
 

Gael

XLDnaute Barbatruc
Re : Probleme de macro qui saute

Bonjour C4rtoons, le forum et salut Tototiti,

Chez moi, ça fonctionne bien.

Pour la macro évènementielle:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, [D3:D4]) Is Nothing Then
     Target = UCase(Target)
        End If
End Sub

Pour la deuxième macro, j'aurais simplement ajouté "enableevents=false" en début de procédure et "true" à la fin pour éviter de lancer la procédure évènementielle ce qui donne (avec bien sûr le Dim modifié):
Code:
Private Sub putdate()
Application.EnableEvents = False
    Dim vDate As String
       vDate = Date
       vDate = Format(vDate, "dd mmm yyyy")
       Range("D2") = vDate
    
    Dim Vdatecreation
        Vdatecreation = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
        Vdatecreation = Format(Vdatecreation, "dd mmm yyyy")
        Range("D20") = Vdatecreation
Application.EnableEvents = True
End Sub

@+

Gael
 

C4rtoons

XLDnaute Junior
Re : Probleme de macro qui saute

Comme cela, ta partie fonctionne tres bien! quand la formule est toute seule, mais pas avec les autres!
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D3:D4")) Is Nothing Then
     Target = UCase(Target)
        End If
    Dim vDate As String
       vDate = Date
       vDate = Format(vDate, "dd mmm yyyy")
       Range("D1") = vDate
    
    Dim Vdatelastsave As String
        Vdatecreation = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
        Vdatecreation = Format(Vdatecreation, "dd mmm yyyy")
        Range("x1") = Vdatecreation
End Sub
 

C4rtoons

XLDnaute Junior
Re : Probleme de macro qui saute

Sacrée belle boule de cristal pour la 2ème solution et une question du type
;)

Je parlé de la deuxieme macro...

Code:
Private Sub putdate()
Application.EnableEvents = False
    Dim vDate As String
       vDate = Date
       vDate = Format(vDate, "dd mmm yyyy")
       Range("D2") = vDate
    
    Dim Vdatecreation
        Vdatecreation = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
        Vdatecreation = Format(Vdatecreation, "dd mmm yyyy")
        Range("D20") = Vdatecreation
Application.EnableEvents = True
End sub

Merci pour le coup de main ;)
(Ca ne fonctionne toujours pas... Mon fichier plante lorsque je regroupe les deux macro...)
 

tototiti2008

XLDnaute Barbatruc
Re : Probleme de macro qui saute

Bonjour à tous,

Toujours pas tout compris

Comme ça peut-être ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim vDate As String
    Dim Vdatelastsave As String
    If Not Application.Intersect(Target, Range("D3:D4")) Is Nothing Then
    Target = UCase(Target)
       vDate = Date
       vDate = Format(vDate, "dd mmm yyyy")
       Range("D1") = vDate
   
        Vdatecreation = ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value
        Vdatecreation = Format(Vdatecreation, "dd mmm yyyy")
        Range("x1") = Vdatecreation
    End If
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Probleme de macro qui saute

Re,

Si tu nous avais expliqué exactement ce que tu souhaites réaliser, je pense qu'on aurait déjà terminé
Tu veux que ça mette D3 et D4 en majuscules, ça OK
Quand veux-tu que ça écrive les dates en D1 et X1 ? à n'importe quelle modification de cellule ?
 

C4rtoons

XLDnaute Junior
Re : Probleme de macro qui saute

D1, je veux la date du jour actualisé chaque jour. Si demain j'ouvre le fichier, alors je voudrais avoir 11 Mai 2011 par exemple

X1, à l'origine je voulais la date de création du fichier avec le nouveau nom - Pas la date d'origine de la première ouverture du fichier Excel - ,
mais je ne trouve pas la formule. La seule chose que je trouve c'est la date de la dernière sauvegarde.
donc, soit: la date de la création du fichier avec le nouveau nom
soit, la date de la dernière sauvegarde - actualisé à chaque sauvegarde.

Merci d'avoir cherché à comprendre en tout cas.
 

Fo_rum

XLDnaute Accro
Re : Probleme de macro qui saute

Bonjour,

à tester (sans variables)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Application.Intersect(Target, Range("D3:D4")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    Target = UCase(Target)
    Range("D1") = Format(Date, "dd mmm yyyy")
    Range("X1") = Format(ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value, "dd mmm yyyy")
    Application.EnableEvents = True
End Sub
le fichier doit avoir été sauvegardé (sinon erreur pour X1) !
 

tototiti2008

XLDnaute Barbatruc
Re : Probleme de macro qui saute

Bonjour Fo_rum,
Re,

Peut-être

Dans le code de la feuille

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, range("D3:D4")) Is Nothing Then
Application.enbleevents = false
     Target = UCase(Target)
Application.enableevents = True
    End If
End Sub
Dans Thisworkbook

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Sheets("Feuil1").Range("X1").Value = Format(date, "dd mmm yyyy")
End Sub

Private Sub Workbook_Open()
    Sheets("Feuil1").Range("D1").Value = Format(Date, "dd mmmm yyyy")
End Sub

Edit : Correction dans BeforeSave
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
240

Statistiques des forums

Discussions
312 220
Messages
2 086 381
Membres
103 198
dernier inscrit
CACCIATORE