Modification de date suite à une modification de cellule
#1
Débutant XLPages

Inscription: 20/09/2012

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 20-09-2012 12h03
Bonjour,

Je suis a la recherche d'une facon de faire pour realiser mon besoin,

Je voudrai modifier une date instantanement (la date du "AUJOURDHUI") suite à la modification d'une valeur numerique d'une cellule.

Je m'explique, pour un suivis de stock, j'aimerai automatisé la mise à jour de la date de modification de quantité de l'article présent en stock.

Il me faut aussi mettre a jour automatiquement l'ancienne quantité qui elle doit rester fige apres l'ouverture du fichier.

La cellule D8 doit etre égale à la valeur de l'ancienne cellule E8 mais ne doit pas changer avant la fermeture du fichier lorsque je modifie E8.

Si je modifie E8 je veut que la date en G8 soit mise jour, mais si il n'y a pas de modification la case doit etre inchangée.

Voilà il  y a peut être d'autre solution, donc n'hesiter pas a donnée vos idées.

Si possible je voudrai pas rajouter trop de colonne en plus.

Cordialement







Pièce jointe:
xlsx Classeur1.xlsx   [ Taille: 54.27 Ko - Téléchargements: 759 ]
Hors Ligne
Rapport   Haut 

Re: Modification de date suite à une modification de cellule
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 20-09-2012 20h51
Bonsoir bernard, bienvenue sur XLpages.com

Pour tenter de répondre au mieux à ta demande, je ne vois que VBA. Je doute fort qu'on puisse répondre à l'ensemble des contraintes exposées avec la seule utilisation de formules de calcul...

Tu trouveras donc en pièce jointe une tentative de solution.

J'ai utilisé le code VBA suivant :

DANS LE MODULE DE CODE DE LA FEUILLE

Option Explicit

Private Sub
Worksheet_Change(ByVal Target As Range)
Dim Lmax As Long
    'Ne gère pas les modifications par plage entière
    If Target.Count > 1 Then Exit Sub
    Lmax = Cells(Rows.Count, 1).End(xlUp).Row
    'Si modif du stock réel en colonne E
    If Not Application.Intersect(Target, Range(Cells(8, 5), Cells(Lmax, 5))) Is Nothing Then
        If Target.Value <> Target.Offset(0, 5).Value Then
            'Si quantité change (colonne E <> colonne J), alors insérer la Date du jour en colonne G
            Target.Offset(0, 2).Value = Date
        End If
    End If
End Sub


DANS LE MODULE DE CODE THISWORKBOOK

Private Sub Workbook_Open()
Dim PlageSource As Range, PlageCible As Range
Dim Lmax As Long, L As Long
    With Sheets("Electrique (départs)")
        Lmax = .Cells(.Rows.Count, 1).End(xlUp).Row
        'Copie valeurs cachées colonne J en colonne D si colonne J <> de colonne E
        Set PlageSource = .Range(.Cells(8, 10), .Cells(Lmax, 10))
        Set PlageCible = .Range(.Cells(8, 4), .Cells(Lmax, 4))
        For L = 1 To PlageSource.Rows.Count
            If PlageSource(L).Value <> PlageSource(L).Offset(0, -5).Value Then
                PlageCible(L).Value = PlageSource(L).Value
            End If
        Next L
        'Copie valeurs colonne E en colonne J
        Set PlageCible = PlageSource
        Set PlageSource = .Range(.Cells(8, 5), .Cells(Lmax, 5))
        PlageCible.Value = PlageSource.Value
    End With
End Sub


En espérant t'avoir dépanné...

Cordialement,

Pièce jointe:
zip PourBernard.zip   [ Taille: 34.52 Ko - Téléchargements: 1196 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Modification de date suite à une modification de cellule
#3
Débutant XLPages

Inscription: 20/09/2012

Messages: 2

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 21-09-2012 09h12
Bonjour ,

Un grand merci ça marche parfaitement, il va vraiment falloir que je m'y attaque au VBA.

Cordialement
Hors Ligne
Rapport   Haut 

Re: Modification de date suite à une modification de cellule
#4
Débutant XLPages

Inscription: 14/04/2013

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2007, 2010
Posté le : 16-04-2013 13h25
Bonjour,

Cela marche bien sauf si je suis en réseau. J'ai une erreur sur la ligne suivante :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lmax As Long
     'Ne gère pas les modifications par plage entière
     If Target.Count > 1 Then Exit Sub
     Lmax = Cells(Rows.Count, 1).End(xlUp).Row
     'Si modif du stock réel en colonne E
     If Not Application.Intersect(Target, Range(Cells(36, 15), Cells(Lmax, 40))) Is Nothing Then
         If Target.Value <> Target.Offset(38, 15).Value Then
             'Si quantité change (colonne E <> colonne J), alors insérer la Date du jour en colonne G
             Target.Offset(2, 0).Value = Date
         End If
     End If
End Sub

Que faut-il faire?

Merci de votre aide
Hors Ligne
Rapport   Haut 

Re: Modification de date suite à une modification de cellule
#5
Débutant XLPages

Inscription: 14/04/2013

Messages: 9

Système d'exploitation:
PC
Version Excel utilisée:
2007, 2010
Posté le : 16-04-2013 19h45
Bonsoir,

J'ai trouvé!! Cela ne fonctionnait pas car la cellule qui devait être modifiée était en mode protégé.




Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes