generer des codes produits internes?

methodesaladine

XLDnaute Nouveau
Bonjour à tous, je vais etre en stage bientot et je recherche une formule qui puisse faire generer des codes automatiquement, en faite je veux mettre en place des codes références produits internes en entreprise, si vous avez une methode, ca m'aiderait grandement, en vous remerciant!!!:)
 
D

Denis

Guest
Re : generer des codes produits internes?

Bonjour methodesaladine et le Forum
ta demande est assez vague.
En général quand on crée des codes articles, ceux-ci inclus, la famille et la ou les sous-familles de l'article.
Il existe, si celà t'interesse, des normes là-dessus.(faire une recherche sur le net avec la catégorie d'article concerné)

Bon courage et à +
Denis
 

methodesaladine

XLDnaute Nouveau
Re : generer des codes produits internes?

Bonjour,



Des codes à base de quoi? Lettres? Chiffres? Nom produits? Fournisseur et produit? autres?

Plus la demande est détaillées et explicite plus nous irons vite.

A+ de te lire


Merci pour votre réponse, à base en faite de chiffres et de lettre (j741LK par exemple) pour référencer les produits (produits d'électricité) qu'on achète aux fournisseur pour les revendre a la clientèle avec notre code personnel, car mon entreprise utilise jusqu'à maintenant le code du fournisseur et il m'a donc demandé de trouver une méthode qui puisse générer automatiquement des codes sur excel, en effet j'ai pas été assez explicite!!!
:)

Si vous voulez d'autres explications je serais là. ;)

Je vous remercie d'avance..



Bonjour methodesaladine et le Forum
ta demande est assez vague.
En général quand on crée des codes articles, ceux-ci inclus, la famille et la ou les sous-familles de l'article.
Il existe, si celà t'interesse, des normes là-dessus.(faire une recherche sur le net avec la catégorie d'article concerné)

Bon courage et à +
Denis


J'ai pas trop compris pour les normes, pourriez vous m'expliquer en vous remerciant!!!
 
G

Guest

Guest
Re : generer des codes produits internes?

Re,

Ce n'est toujours pas très explicite.
D'où sort-on les chiffres, le code personnel?
Où les placer, en début, milieu, fin de référence?

Le mieux est de nous faire un fichier exemple et de le joindre avec les explications.

A bientôt
 

JCGL

XLDnaute Barbatruc
Re : generer des codes produits internes?

Bonjour à tous,
Saut Hasco :),

Un code qui génère des... codes (renseigner D2:F2)
Code:
Sub Generation()
Application.ScreenUpdating = 0
Range("A2:A65000").ClearContents
For i = 1 To [F2]
ActiveSheet.Range("A65000").End(xlUp).Offset(1, 0).Value = [D2] & x & Format(i, "00000") & [E2]
Next
Application.ScreenUpdating = 1
End Sub

A++
A+ à tous
 

Pièces jointes

  • JC Generation Codes Articles.zip
    9.5 KB · Affichages: 135

methodesaladine

XLDnaute Nouveau
Re : generer des codes produits internes?

Bonjour à tous,
Saut Hasco :),

Un code qui génère des... codes (renseigner D2:F2)
Code:
Sub Generation()
Application.ScreenUpdating = 0
Range("A2:A65000").ClearContents
For i = 1 To [F2]
ActiveSheet.Range("A65000").End(xlUp).Offset(1, 0).Value = [D2] & x & Format(i, "00000") & [E2]
Next
Application.ScreenUpdating = 1
End Sub

A++
A+ à tous


Merci, je vais essayer cette methode!!!;):)







Re,

Ce n'est toujours pas très explicite.
D'où sort-on les chiffres, le code personnel?
Où les placer, en début, milieu, fin de référence?

Le mieux est de nous faire un fichier exemple et de le joindre avec les explications.

A bientôt


Excusez moi de ne pas avoir été assez explicite, mais je veux que la référence soit aléatoire, y t'il une methode pour ca, est ce possible?

Par exemple taper une référence basique, avec des lettres et chiffres dans chaque cellule, ensuite pour la suivante référence cela se fera automatiquement, en tapant peut être une lettre dans la première cellule de la deuxième ligne qui copiera ensuite automatiquement des chiffres et lettres aléatoires, j'espère que vous avez compris là.:D;):p

Merci encore à vous.
;)
 
Dernière édition:

methodesaladine

XLDnaute Nouveau
Re : generer des codes produits internes?

Bonjour à tous,
Saut Hasco :),

Un code qui génère des... codes (renseigner D2:F2)
Code:
Sub Generation()
Application.ScreenUpdating = 0
Range("A2:A65000").ClearContents
For i = 1 To [F2]
ActiveSheet.Range("A65000").End(xlUp).Offset(1, 0).Value = [D2] & x & Format(i, "00000") & [E2]
Next
Application.ScreenUpdating = 1
End Sub

A++
A+ à tous

Bonjour, j'ai essayé mais je ne vois pas de génération automatique malgré que j'ai renseigné les cellules, pourriez vous m'expliquer votre lien, je n'y arrive pas et je crois que le code source a deja été inséré, faut il insérer une formule? je vous remercie d'avance!!!:eek::);)
 
G

Guest

Guest
Re : generer des codes produits internes?

Bonjour,
Hello JC:),

Toujours pas compris m'enfin voici un classeur avec une méthode possible.

Entrer un nom de produit en colonne B de la feuil1 et une référence basée sur une forme HexaDecimale de la date + heure+minute+seconde est générée.

Limite: risque de doublons si plus d'un produit est ajouté par seconde(par macro par exemple).


A+
 

methodesaladine

XLDnaute Nouveau
Re : generer des codes produits internes?

Bonjour à tous,

Si les trois cellules sont renseignées, il suffit de cliquer sur le GO

A+

Merci j'ai reussi et j'ai trouvé ca super intéressant, je voudrais tout de meme voir si il n y a pas de formule pour pouvoir générer, car mon tuteur me demande de trouver une formule, (alea, code, concaténer?)!!!


Bonjour,
Hello JC:),

Toujours pas compris m'enfin voici un classeur avec une méthode possible.

Entrer un nom de produit en colonne B de la feuil1 et une référence basée sur une forme HexaDecimale de la date + heure+minute+seconde est générée.

Limite: risque de doublons si plus d'un produit est ajouté par seconde(par macro par exemple).


A+

Je veux qu'à partir d'une reference qu'on a saisi nous même, pouvoir générer ensuite des codes aléatoires grace à une formule dans les cellules suivantes en copiant, voici un schema, mais tout d'abord est ce possible? ou ce que je demande est utopique?
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : generer des codes produits internes?

Bonjour à tous,

Un essai par formule (toujours en renseignant les trois cellules)

A+

PS : Peux-tu réduire ton image en largeur. Merci
 

Pièces jointes

  • JC Formule Generation Codes Articles.zip
    6.9 KB · Affichages: 79

methodesaladine

XLDnaute Nouveau
Re : generer des codes produits internes?

Bonjour à tous,

Un essai par formule (toujours en renseignant les trois cellules)

A+

PS : Peux-tu réduire ton image en largeur. Merci


Bonjour, merci à vous, tres bon travail, c'est déjà mieux que rien meme si c'est pas ce que je cherchais, bonne journée à vous et à bientôt.;)




Bonjour à tous,
Je ne suis pas sûr d'avoir compris exactement, mais je propose quand même...​
À vous lire,
ROGER2327


Ca ressemble à ce que cherchais, mais où est la formule? j'aimerais avoir des explications sur ce fichier pour comprendre comment se fait il qu'en double cliquant ca genere un code, il n'y aucun risque de doublon? on peut changer cette reference? je vous remercie d'être passé pour m'avoir aidé, bonne journée, à bientôt.
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : generer des codes produits internes?

Bonsoir à tous.
À l'attention de methodesaladine :​
Il n'y a pas de formule dans le classeur que j'ai fourni, mais une procédure écrite en VBA (et elle contient une erreur !). Il existe sur ce forum de très brillant(e)s «formulistes» qui sauront peut-être vous dépanner, mais je n'en suis pas. Je vous propose une nouvelle version plus élaborée (et, je l'espère, sans erreur) en VBA, que je vais vous expliquer.​
On place d'abord le code
Code:
Sub A_COD(ByVal c As Long, Optional p As String)
' 21 Nivôse CCXVII
' ROGER2327 fecit.
Dim i As Long, j As Long, n As String, cal As Long, tf As Boolean
Dim dat()
Dim pt()
    Application.ScreenUpdating = False
    cal = Application.Calculation
    Application.Calculation = xlCalculationManual

[COLOR="DarkOliveGreen"]' Interprétation du descripteur p[/COLOR]
    If Len(p) = 0 Then ' modèle par défaut
        pt = Array(8, Array(26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), Array(26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), Array(0, "-"), _
            Array(10, "1234567890"), Array(10, "1234567890"), Array(0, "-"), Array(26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), _
            Array(26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
    Else
        ReDim pt(Len(p))
        pt(0) = 0
        j = 1
        For i = 1 To Len(p)
            n = Mid$(p, j, 1)
            Select Case n
                Case ""
                Case "["
                    n = Mid$(p, j + 1, InStr(j, p, "]") - j - 1)
                    pt(i) = Array(0, n)
                    j = j + Len(n) + 2
                    pt(0) = 1 + pt(0)
                Case Else
                Select Case n
                    Case "0": pt(i) = Array(10, "1234567890"): pt(0) = 1 + pt(0): j = j + 1
                    Case "9": pt(i) = Array(9, "123456789"): pt(0) = 1 + pt(0): j = j + 1
                    Case "L": pt(i) = Array(26, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"): pt(0) = 1 + pt(0): j = j + 1
                    Case "M": pt(i) = Array(24, "ABCDEFGHJKLMNPQRSTUVWXYZ"): pt(0) = 1 + pt(0): j = j + 1
                    Case "C": pt(i) = Array(20, "BCDFGHJKLMNPQRSTVWXZ"): pt(0) = 1 + pt(0): j = j + 1
                    Case "V": pt(i) = Array(6, "AEIOUY"): pt(0) = 1 + pt(0): j = j + 1
                    Case "W": pt(i) = Array(4, "AEUY"): pt(0) = 1 + pt(0): j = j + 1
                    Case Else: pt(i) = Array(0, Mid$(p, j, 1)): pt(0) = 1 + pt(0): j = j + 1
                End Select
            End Select
        Next i
    End If
    ReDim Preserve pt(pt(0))
[COLOR="DarkOliveGreen"]' Fin de l'interprétation du descripteur p[/COLOR]

[COLOR="DarkOliveGreen"]' Engendrement des références[/COLOR]
    dat = Cells(1, c).CurrentRegion.Value
    For i = 2 To UBound(dat, 1)
        If IsEmpty(dat(i, c)) Then
            Do
                n = ""
                tf = False
                For j = 1 To pt(0)
                    If pt(j)(0) Then
                    n = n & Mid$(pt(j)(1), Int(pt(j)(0) * Rnd() + 1), 1)
                    Else
                        n = n & pt(j)(1)
                    End If
                Next j
                For j = 2 To UBound(dat, 1): tf = tf Or (n = dat(j, c)): Next j
            Loop While tf
            dat(i, c) = n
            Cells(i, c) = n
        End If
    Next i
[COLOR="DarkOliveGreen"]' Fin de l'engendrement des références[/COLOR]

    Application.Calculation = cal
    Application.ScreenUpdating = True
End Sub
dans un module standard quelconque du classeur.
Ce code prend deux arguments : un entier c qui est le numéro de colonne dans laquelle on veut placer les références, et une chaîne de carctères p qui est un descripteur de la référence souhaitée. La syntaxe de ce descripteur est détaillée dans un bloc de texte sur la première feuille du classeur joint.
La première partie (Interprétation du descripteur) traduit le descripteur en un tableau de tableaux qui donnera les éléments de construction des références.
La deuxième partie (Engendrement des références) crée une à une les références, vérifie l'inexistence d'un doublon et place ligne par ligne une référence unique dans la colonne c de la feuille active. La lecture du code vous permettra, je l'espère, d'en comprendre le fonctionnement : je n'ai pas ici la place pour fournir une justification pas à pas.
Pour utiliser le code ci-dessus, vous pouvez construire une interface spécifique pour lui fournir c et p et l'appeler par l'instruction
Code:
A_COD [I]numéro_de_colonne[/I], [I]descripteur_de_référence[/I]
descripteur_de_référence est facultatif. S'il est omis, le code engendrera des références décrite par LL[-]00[-]LL (voir la partie "modèle par défaut" du code et la première feuille du classeur pour l'interprétation).​
À défaut de construction d'une interface, j'ai placé le code suivant dans le module de code de la première feuille pour appeler la procédure :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Cells(1, 1).Address = "$A$1" Then A_COD 1, Target.Cells(1, 1).Value: Cancel = True
End Sub
Ce code est déclenché par un double-clic sur la première feuille. Vous voyez que, si le double-clic a lieu dans la cellule A1, il appelle la procédure A_COD avec les paramètres 1 et Target.Cells(1, 1).Value c'est-à-dire qu'il placera les références dans la colonne A en utilisant le descripteur contenu en A1.​
Tout cela est un peu brut de décoffrage, le code est assez sommaire et ne fait pas appel à des concepts subtils. Par ailleurs, aucune gestion des éventuelles erreurs n'est prévue, pas même un contrôle de validité du descripteur : il reste à faire...
Puisse-t-il vous inspirer pour un développement plus sérieux.​
Bon courage !
ROGER2327
 

Pièces jointes

  • 090110_REF.zip
    10.3 KB · Affichages: 89

Discussions similaires

Statistiques des forums

Discussions
312 414
Messages
2 088 225
Membres
103 773
dernier inscrit
Palekor