Macro avec Date qui change la date du pc

Macro avec Date qui change la date du pc (Windows 7 64 pro)...Et qui au finale ne fonctionne pas, la grosse blague ^^

Tout à commencé avec un message de l'antivirus dont la licence a expiré. Je fini par voir que la date du pc à changé 10/10/2015. Aprés avoir mit la date du jour, je retourne sur Excel et la je vois 10/10/2015, je ne dit "hasard". je change la date et rebelote, celle du pc change (au passage plante excel)

Bref, voilà la blague :

   
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
         If IsDate(Target) And Target.Value <> "" Then
            Date = Cells(Target.Row, 1).Value
            Rechercher = Cells(Target.Row, 3).Value
            For Trouver = 2 To 10
                If Cells(Trouver, 3).Value = Rechercher Then
                Cells(Trouver, 1) = Date
                End If
            Next
    End If
End If    
End Sub

A la base, je souhaite que lorsque dans la colonne A on inscrit une date, vérifier dans la colonne C des autres ligne si la même affaire existe et si oui y mettre la date.

/!\ ATTENTION/!\

Votre Activation d'OFFICE risque de sauter, rester dans une date proche de celle du jour.

Cdt

Harissa

44bizarre.zip (13.35 Ko)

Bonjour,

c'est ici que tu changes la date du PC :

Date = Cells(Target.Row, 1).Value

à supprimer ou corriger

eric

Bonjour et merci de me répondre,

Quand j'avais commencer a taper Date = , j'y avais pensé que cela pourrai poser un problème quelconque, mais j'aurai jamais penser que cela change la date de windows.

J'ai remplacé par Date1, ça ne modifie plus la date de windows, par contre, ma macro ne fonctionne plus (enfin elle touche le fond ^^), j'ai direct un " erreur d'execution 28 / Espace pile insufissant " et je fini par planter excel.

Si je rajoute un cancel=true, ça "fonctionne" mais ca plante toujours excel...

    Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A2:A10")) Is Nothing Then

         If IsDate(Target) And Target.Value <> "" Then
            Date1 = Cells(Target.Row, 1).Value
            Rechercher = Cells(Target.Row, 3).Value
            For Trouver = 2 To 10
                If Cells(Trouver, 3).Value = Rechercher Then
                Cells(Trouver, 1) = Date1
                End If
            Next
            End If

      Cancel = True
End If

    End Sub

Re,

vérifier dans la colonne D des autres ligne si la même affaire existe et si oui y mettre la date.

la même affaire que quoi ??

eric

edit: ok, j'ai compris...

Ah désolé, je m'étais planté de colonne. J'ai édité.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dat1 As Date, adr1 As String, c As Range, dossier As Long
    If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
        If IsDate(Target) And Target.Value <> "" Then
            Application.EnableEvents = False
            dat1 = Target
            dossier = Target.Offset(, 2)
            Set c = Cells.Columns(3).Find(dossier, LookIn:=xlValues, lookat:=xlWhole)
            If Not c Is Nothing Then
                adr1 = c.Address
                Do
                    c.Offset(, 2) = dat1
                    Set c = Cells.FindNext(c)
                Loop While c.Address <> adr1    'And Not c Is Nothing
            End If
            Application.EnableEvents = True
        End If
    End If
End Sub

regarde si ça va

Au niveau du principe, ça fonctionne nikel, par contre, pour le résultat, c'est dans la colonne A et pas dans la E qu'il faut mettre la date.

Visiblement, je comprend rien à ce que tu as fait, je n'arrive pas a modifier sans que cela ne fonctionne plus.

alors :

c.Offset(, -2) = dat1

c est la cellule avec le n° de dossier, et tu veux la date 2 colonnes à gauche (donc -2)

eric

J'avais bien compris Offset=Absolu, par contre j'avais modifié n'importe comment.

Merci bien, ça fonctionne parfaitement.

Rechercher des sujets similaires à "macro date qui change"