IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Journal des modification cellule visualiser info 1ere colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 18
    Par défaut Journal des modification cellule visualiser info 1ere colonne
    Bonjour,

    Ce code journalise toutes les modifications sur une feuille dans l'onglet journal.
    Je souhaite que dans la colonne FA soit ajouté systématiquement la valeur en colonne B de la même ligne sur la feuille.

    Je galère depuis deux heures car je comprends pas la modification que je dois apporter dans ce code.

    Pouvez-vous m'apporter votre aide?

    Nom : 2022_10_04_21_03_38_FA.xlsm_Excel.jpg
Affichages : 290
Taille : 34,0 Ko


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
    Private Sub Workbook_Sheetchange(ByVal feuille As Object, ByVal cible As Range)
    Dim avant() As Variant, apres() As Variant, FA() As Variant, nFA As Variant
     
     
     
    On Error GoTo fin
     
        If feuille.Name = "Journal" Then Exit Sub
        If cible.Columns.Count = Columns.Count Or cible.Rows.Count = Rows.Count Then
            Application.EnableEvents = False
                Application.Undo
            Application.EnableEvents = True
            MsgBox "Impossible d'agir sur une ligne ou une colonne complète !"
            Exit Sub
        End If
     
        Application.EnableEvents = False
        ReDim avant(1 To cible.Rows.Count, 1 To cible.Columns.Count)
        ReDim apres(1 To cible.Rows.Count, 1 To cible.Columns.Count)
        ReDim FA(1 To cible.Rows.Count, 1 To cible.Columns.Count)
        Application.Undo
        For lig = 1 To UBound(avant)
            For col = 1 To UBound(avant, 2)
                avant(lig, col) = cible.Cells(1, 1).Offset(lig - 1, col - 1).FormulaLocal
     
                FA(lig, col) = cible.Cells(lig, 2)
                nFA = cible.Cells(1, 1)
               MsgBox FA(lig, col)
                MsgBox nFA
     
            Next
        Next
        Application.Undo
        For lig = 1 To UBound(apres)
            For col = 1 To UBound(apres, 2)
                apres(lig, col) = cible.Cells(1, 1).Offset(lig - 1, col - 1).FormulaLocal
     
     
            Next
        Next
     
        Worksheets("Journal").Unprotect "CPIRE"
     
     
     
        For lig = 1 To cible.Rows.Count
            For col = 1 To cible.Columns.Count
                If avant(lig, col) <> apres(lig, col) Then
                    With Sheets("Journal").ListObjects(1)
                        .ListRows.Add
                        i = .ListRows.Count
                        With .DataBodyRange
     
     
                            .Cells(i, 1) = Now
                            .Cells(i, 2) = feuille.Name
                            .Cells(i, 3) = cible.Cells(1, 1).Offset(lig - 1, col - 1).Address
                            .Cells(i, 4) = "'" & avant(lig, col)
                            .Cells(i, 5) = "'" & apres(lig, col)
                            .Cells(i, 6) = Environ("username")
                            .Cells(i, 7) = "'" & FA(lig, col)
                        End With
                    End With
                End If
            Next
        Next
     
    fin:
        Application.EnableEvents = True
        If Err Then MsgBox "Erreur #" & Err.Number & " !"
     
    Worksheets("Journal").Protect "CPIRE", True, True, True
     
    End Sub
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour,
    pouvez vous nous mettre un fichier exemple ?
    pour moi il y a plus simple un seul tableau mémoire pour toutes la ligne .

    cdlt
    nicogef

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 18
    Par défaut Exemple de fichier
    Citation Envoyé par nicogef Voir le message
    bonjour,
    pouvez vous nous mettre un fichier exemple ?
    pour moi il y a plus simple un seul tableau mémoire pour toutes la ligne .

    cdlt
    nicogef
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 106
    Par défaut
    bonjour,
    ci joint la ligne modifier

    ligne avant
    Citation Envoyé par vincm70 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
                FAI(lig, col) = cible.Cells(lig, 2)
    ligne modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    FAI(lig, col) = feuille.Cells(cible.Row, 2).Value
    cdlt
    nicogef

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 18
    Par défaut RESOLU
    Yes, Merci beaucoup.
    J'y étais presque en fait. Enfin pas dans la version que je t'ai donné.
    ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/06/2018, 21h02
  2. [XL-2003] Supprimer des cellules vides dans une colonne
    Par floctc dans le forum Excel
    Réponses: 6
    Dernier message: 08/12/2009, 14h32
  3. Infos sur la gestion des modifs à date
    Par famifrench dans le forum SAP
    Réponses: 0
    Dernier message: 30/07/2009, 23h27
  4. Réponses: 3
    Dernier message: 20/06/2007, 23h18
  5. Réponses: 3
    Dernier message: 01/12/2005, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo