Macro

Bonjour,

Je cherche à faire un tableau sur excel avec 2 colonnes :
--> 1ere colonne une série de chiffres saisi par un opérateur
--> 2eme colonne le jour dsaisi en automatique.
Il faut faire en sorte que la date de saisi ne change pas lorsque je vais ouvrir ce fichier le lendemain ou plus tard et si c'est possible que l'opérateur ne puisse pas resaisir sur une cellule qu'il a déjà saisi dans la 1ere colonne.

Merci pour votre aide

6 réponses

  1. Bonjour,

    Code à copier dans le module de la feuille concernée (Alt+F11:

    Private Sub Worksheet_Change(ByVal Target As Range)
    i = Target.Row
    If Target.Column = 1 Then 'Saisie en colonne 1
    Cells(i, 2).Value = Date 'Date fixée en colonne 2
    End If
    End Sub

    Cordialement.
    0
    1. Merci mais ça ne fonctionne pas.

      Je n'ai peut etre pas été clair.
      1) Je veux saisir une valeur en colonne (251647)
      2) Je veux que la date et l'heure de saisie s'affiche en colonne 2 en automatique
      3) Il faut que la date soit figée de tel sorte que lorsque j'ouvre le fichier le lendemain les dates ne changent pas pour les cellules déjà saisie
      4) Il faut que je ne puisse pas modifier les saisis que j'ai déjà fait en colonne 1.

      Merci
      0
      1. Bonjour

        un complément à la proposition de g (cordiales salutations)
        pour date+heure de saisie et protection de la cellule se saisie
        RQ. la protection ne sera effective que si la feuille est protégée

        Private Sub Worksheet_Change(ByVal Target As Range)
        i = Target.Row
        If Target.Column = 1 Then 'Saisie en colonne 1
        Cells(i, 2).Value = Now 'Date fixée en colonne 2
        ActiveSheet.Unprotect ' de-proteger la feuille
        Cells(i, 1).Locked = True ' proteger cellule saisie
        ActiveSheet.Protect 'proteger la feuille
        End If
        End Sub

        bonne suite
        1
        1. Bonsoir,

          Ca ne fonctionne toujours pas, du moin ça fait pas ce que je veux.
          Il faut que le date s'inscrive quand je saisi dans la 1ere colonne et non pas quand je vais dessus.

          De plus pour le bloquage des cellules en colonne 1 une fois la saisie faite ça ne fonctionne pas.

          Merci d'avance pour votre aide.
          -1
          1. est ce que ceci correspond?
            https://www.cjoint.com/?3KCr0KKx62r

            bonne suite
            1
            1. Il me reste un petit soucis,

              ça ne fonctionne plus une fois que je dépasse les cellules en jaune dans le fichier joint.

              Que faire ?

              Merci d'avance
              0
            2. normal, je n'ai déverrouillé que cette plage
              donc
              1. déprotéger la feuille
              2. déverrouiller la suite de la plage
              2. re-protéger la feuille

              bonne suite
              0
            3. Désolé mais je n'y arrive pas.
              De plus quand j'enlève la protection de la feuille pour supprimer ce qui est saisi dans la colonne A, les cellules 7/8/9/10 ne fonctionne plus. ça me met erreur 1004.
              Le fait que je sois en ECEL 2010 pose peut être problème ???
              Merci
              0
            4. normal,
              ajoutes cette ligne au code (qui te permet de ne pas déclencher la procedure si plus d'une cellule est sélectionnée)

              Dim i As Long 
              If Target.Cells.Count > 1 Then Exit Sub
              If Not Intersect(Target, Range("$A:$A")) Is Nothing Then

              bonne suite
              0
            5. bonjour,

              voici le code que j'ai sur ma feuille :

              Private Sub Worksheet_Change(ByVal Target As Range)
              Dim i As Long
              If Target.Cells.Count > 1 Then Exit Sub
              If Not Intersect(Target, Range("$A:$A")) Is Nothing Then
              If Target = "" Then Exit Sub
              i = Target.Row
              Cells(i, 2).Value = Now 'Date fixée en colonne 2
              ActiveSheet.Unprotect 'déproteger la feuille
              Cells(i, 1).Locked = True 'verrouiller cellule saisie
              Cells(i, 2).Locked = True 'verrouiller cellule date
              ActiveSheet.Protect 'protéger la feuille
              End If
              End Sub

              Que faut il que je rajoute pour que je puisse saisir en colonne 1 et 2 et que la date se mette en colonne 3 ?

              Merci de votre aide.
              0
          2. Merci beaucoup a tous.

            ccm81 ça fontionne avec le fichier joint.

            Impec !!!!

            Encore Merci
            0