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

    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. 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. 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. Merci beaucoup a tous.

          ccm81 ça fontionne avec le fichier joint.

          Impec !!!!

          Encore Merci
          0
          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