Ajouter automatiquement un ID si cellule de la ligne remplie

Bonjour,

Je souhaiterais ajouter automatiquement un ID sur la colonne A si la colonne B est remplie et ceux pour chaque ligne.

J'ai réussi si l'ID sera uniquement numérique (1,2,3,4,5) mais dans mon cas, l'id peut être de forme suivante SB-00001 ou QC-00002.

Comment puis je faire en VBA?

Merci par avance pour votre aide.

j'ai mis en pièce jointe le fichier.

82stephane.xlsm (40.14 Ko)

Bonjour,

Et comment on fait pour déterminer SB ou QC ?

Cdlt.

SB ou QC dépendra du Fichier car je prends les initiales.

Je pense qu'il faudrait que SB et QC doivent être dans le code VBA. Je le changerais manuellement dans chaque fichier.

Bonjour,

A tester.

Cdlt.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strWS As String
Dim lRow As Long, lCounter As Long
Dim x As String

    If Target.ListObject Is Nothing Then Exit Sub

    strWS = Me.Name: x = "SB-": lRow = Target.Row

    Select Case Target.Column
        Case 2
            lCounter = Me.ListObjects(1).ListRows.Count
            Cells(lRow, 1) = x & Format(lCounter, "00000")
        Case 5
            If Not IsEmpty(Target) Then Cells(lRow, "O").Value = strWS Else Cells(lRow, "O") = ""
        Case 8
            If Not IsEmpty(Target) Then Cells(lRow, "M").Value = "Transmis" Else Cells(lRow, "M") = ""
        Case Else
            '
    End Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Target.ListObject Is Nothing And Target.Column = 14 Then
        ListeDeroulante.Show
    End If

End Sub

Bonjour

Ca marche parfaitement bien. MErci beaucoup.

J'ai juste une dernière question : si je supprime dans la ligne 2 la date et que je remets une autre date, ca m'efface SB-00001 et me met à la place le dernier ID SB-00008. Est-ce possible de garder le même id même si on efface la date qui est dans la colonne B?

Re,

A tester.

Cdlt.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strWS As String
Dim lRow As Long, lCounter As Long
Dim x As String

    If Target.ListObject Is Nothing Then Exit Sub

    strWS = Me.Name: x = "SB-": lRow = Target.Row

    Select Case Target.Column
        Case 2
            lCounter = Me.ListObjects(1).ListRows.Count
            If IsEmpty(Target.Offset(, -1)) Then Cells(lRow, 1) = x & Format(lCounter, "00000")
        Case 5
            If Not IsEmpty(Target) Then Cells(lRow, "O").Value = strWS Else Cells(lRow, "O") = ""
        Case 8
            If Not IsEmpty(Target) Then Cells(lRow, "M").Value = "Transmis" Else Cells(lRow, "M") = ""
        Case Else
            '
    End Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Not Target.ListObject Is Nothing And Target.Column = 14 Then
        ListeDeroulante.Show
    End If

End Sub

Merci ca marche !

Rechercher des sujets similaires à "ajouter automatiquement ligne remplie"