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 :

Générer des Numéros de série 2


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut Générer des Numéros de série 2
    Bonjour les amis

    Merci pour vos réponse et vos efforts .

    J'ai un fichier excel que je veux modifier .

    Je veux que le numéro soit : " au lieu de C01000011811 il sera 1811C0100001 avec 18 = année , 11 = mois , C01 = constant , 00001 = numéro d'ordre "

    Je veux qu'il s'incrémente de Exemple: 1811C0100001
    1811C0100002
    ..
    ..
    ..
    1812C0100010 Même si on change le mois

    Merci beaucoup mes amis
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une piste, :
    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
     
    Private Sub générer_Click()
     
        Dim Lig As ListRow
        Dim Cel As Range
        Dim Num As Integer
        Dim I As Long
        Dim no_ordre As String
     
     
        '// contrôles saisie
        If Me.Mois = Empty Then MsgBox "Mois absent ": Exit Sub
        If Me.Qté_demandée = Empty Then MsgBox "Quantité absente ": Exit Sub
        If Me.Date_impression = Empty Then MsgBox "Date impression absente ": Exit Sub
     
        'la date doit être valide, la quantité doit être numérique et au minimum à 1
        If Not IsDate(Date_impression.Text) Then MsgBox "Date impression non valide !": Exit Sub
        If Not IsNumeric(Me.Qté_demandée.Text) Then MsgBox "Seulement numérique !": Exit Sub
        If CInt(Me.Qté_demandée.Text) < 1 Then MsgBox "La quantité doit être supérieure à 0 !": Exit Sub
     
        With BD
     
            'si la base n'est pas vide, effectue la recherche pour définir le numéro
            If Not .DataBodyRange Is Nothing Then
     
                Set Cel = .ListColumns("N° de série").DataBodyRange.Find(Right(Année.Text, 2) & Format(Mois.Text, "00") & "C01", , xlValues, xlPart)
                If Not Cel Is Nothing Then Num = Right(.ListColumns("N° de série").DataBodyRange(Cel.Row - 1).Value, 5)
     
            End If
     
            'crée les références
            For I = 1 To Int(Qté_demandée.Text)
     
                Set Lig = .ListRows.Add
                no_série = Right(Année.Text, 2) & Format(Mois.Text, "00") & "C01" & Format(Num + I, "00000")
                Lig.Range(, 2).Value = no_série
                Lig.Range(, 3).Value = CDate(Date_impression.Text)
     
            Next I
     
        End With
     
    End Sub

  3. #3
    Membre à l'essai
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut
    Bonjour Theze ;

    Pouvez-vous m'envoyer le fichier .xlsm ?

    Merci

  4. #4
    Membre éprouvé
    Homme Profil pro
    Comptable
    Inscrit en
    Novembre 2018
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Novembre 2018
    Messages : 100
    Par défaut
    Bonsoir emily22, et bonsoir le forum,

    Remplace les lignes en commentaires par ces nouvelles lignes

    Dans l’évènement générer_Click()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'no_ordre = Format(Val(Mid(no_série, 4, 5)) + 1, "00000")
    'no_série = Left(no_série, 3) & no_ordre & Right(no_série, 4)
    no_ordre = Format(Val(Right(no_série, 5) + 1), "00000")
    no_série = Left(no_série, Len(no_série) - 5) & no_ordre
    Et dans l'évènement Mois_Change()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'no_série = ref_produit & no_ordre & Right(Me.Année, 2) & Format(Me.Mois, "00")
    no_série = Format(Right(Me.Année, 2)) & Format(Me.Mois, "00") & ref_produit & no_ordre
    A+

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Le voici :
    Project SN12.4_Theze.xlsm

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