Excel 2003 VBA - Clé primaire auto incrémentée non effacable

Lili77

XLDnaute Nouveau
Bonjour

Dans le code ci-dessous, pourriez-vous me dire s'il est possible d'intégrer dans celui-ci que la colonne A s'incrémente automatiquement et n'est pas modifiable (clé primaire) ? Merci d'avance pour votre aide !

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Dim Cel As Range
    Dim derLig As Long
    Dim lignVide As Long
    Dim V1
    Dim V2
    Dim V3
    Dim V4
    Dim V5
    Dim V6
 
    If Target.Column <> 12 Then Exit Sub
 
    derLig = Range("A" & Rows.Count).End(xlUp).Row
 
    If Target.Row <> derLig Then Exit Sub
 
    If Target.Value = "RM" Then
 
        'il y a 6 valeurs à transférer
        V1 = Me.Cells(derLig, 1): V2 = Me.Cells(derLig, 2): V3 = Me.Cells(derLig, 4)
        V4 = Me.Cells(derLig, 8): V5 = Me.Cells(derLig, 9): V6 = Me.Cells(derLig, 11)
        
        
        
        ' Je teste les six variables, si au moins une est vide alors je définie la variable la_colonne
        ' avec la valeur de la dernière colonne vide, je le signale, j'efface la valeur "RM", je sélectionne la cellule vide et je quitte la macro
        If V1 = "" Then la_colonne = 1
        If V2 = "" Then la_colonne = 2
        If V3 = "" Then la_colonne = 4
        If V4 = "" Then la_colonne = 8
        If V5 = "" Then la_colonne = 9
        If V6 = "" Then la_colonne = 11
        
        If la_colonne > 0 Then
            msg = MsgBox("Une des valeurs n'est pas renseignée ! Veuillez vérifier, merci.", vbokoly)
            Target.Value = ""
            Me.Cells(derLig, la_colonne).Activate
            Exit Sub
        End If
        
        
        
        
        'Ouvrir la feuill GM
        With Worksheets("Gm")
 
            Set Cel = .Columns(1).Find(Me.Cells(derLig, 1), , xlValues, xlWhole)
 
            If Cel Is Nothing Then
            Sheets("GM").Activate
 
               .Unprotect Password:="afital"
 
               'Recherche de la première ligne vide
               lignVide = .Range("A" & .Rows.Count).End(xlUp).Row + 1
 
               'Copie des valeurs dans la feuille "GM"
               .Cells(lignVide, 1) = V1
               .Cells(lignVide, 2) = V3
               .Cells(lignVide, 4) = V6
               .Cells(lignVide, 5) = V2
               .Cells(lignVide, 8) = V4
               .Cells(lignVide, 9) = V5
 
               .Protect Password:="afital"
 
            Else
 
                MsgBox "Enregistrement déjà existant dans la base de données GM !"
 
            End If
 
        End With
 
    End If
 
End Sub
 

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 111
dernier inscrit
Eric68350