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érateur de numéros de série sans double sur classeur partagé


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Générateur de numéros de série sans double sur classeur partagé
    Bonjour,
    Je me pose la question suivante: sur quelle piste partir si toutefois cela est envisageable d'avoir un classeur
    partagé par plusieurs personnes qui puissent disposées d'un bouton qui génèrerait un numéro structuré de
    la manière suivante : une liste de choix de 3 valeurs possibles suivie d'un underscore puis de la date et heure
    courante.
    Tout cela bien évidement en tenant compte que 2 personnes distantes peuvent en même temps générées un
    numéro qui ne doit pas être déjà pris.

    Quels sont vos avis et les pistes possibles.

    Merci pour votre aide
    JCM

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    c'est le genre de truc que je ne confierais pas à Excel (classeur partagé = limitations en tout genre, voir doc Microsoft)
    mais plutôt à Access …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je suis d'accord avec Marc : Excel gère très mal le multi-utilisateurs.

    Citation Envoyé par letrumeau Voir le message
    Je me pose la question suivante: sur quelle piste partir si toutefois cela est envisageable d'avoir un classeur
    partagé par plusieurs personnes qui puissent disposées d'un bouton qui génèrerait un numéro structuré de
    la manière suivante : une liste de choix de 3 valeurs possibles suivie d'un underscore puis de la date et heure
    courante.
    Tout cela bien évidement en tenant compte que 2 personnes distantes peuvent en même temps générées un
    numéro qui ne doit pas être déjà pris.
    En supposant que la prise de numéro se fasse une fois par heure pour chacune des deux personnes, il y a 0,22% de chance que le numéro soit identique s'il intègre l'heure à la seconde près.
    Si cette improbabilité semble insuffisante pour toi, intègre les centièmes de secondes.
    Ou, plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ENT(MAINTENANT()*10000)
    Plus tu mets de 0 dans le multiplicateur, plus la probabilité de nombres identiques diminue.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    J'ai personellement abandonné les classeurs partagés, qui sont très difficiles à gérer (un simple tableau par exemple est incompatible avec un classeur partagé). Je préfère maintenant des classeurs séparés, avec un traitement regroupé par un classeur "maître" avec des liens.
    2 personnes distantes
    : si les noms utilisateurs sont différents, vous pouvez les utiliser pour l'unicité des codes générés, soit directement soit en passant par un CRC ou autre méthode.
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par vinc_bilb Voir le message
    : si les noms utilisateurs sont différents, vous pouvez les utiliser pour l'unicité des codes générés, soit directement soit en passant par un CRC ou autre méthode.
    Bonne idée.
    Ou alors, encore plus sûr, avec le nom de l'ordinateur en créant une petite fonction VBA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function MONORDI()
    Dim i As Long
    i = 1
    Do
       If Left(Environ(i), 12) = "COMPUTERNAME" Then Exit Do
       i = i + 1
    Loop
    MONORDI = Mid(Environ(i), 14, 100)
    End Function
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu peux utiliser un fichier excel comme base de donnée ADO!

    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
    Sub test()
    Dim num As Integer
    [A1] = NumAuto("NumDevis")
    [A2] = NumAuto("NumCommande")
    [A3] = NumAuto("NumDev")
    End Sub
    Function NumAuto(V As String)
    Set Connexion = CreateObject("ADODB.Connection")
    With Connexion
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\GENERATEUR_DE_NUMÉROS_DESERIE.xlsx" & ";Extended Properties=""Excel 12.0;HDR=yes;"";"
          Set Rs = CreateObject("ADODB.Recordset")
        Rs.Open "SELECT * FROM [Page de configuration$] where [Type]='" & Replace(Trim(V), "'", "''") & "'", Connexion, 1, 3
          If Rs.EOF = True Then Rs.AddNew
            Rs("Type") = Trim(V): Rs("Value") = Val("" & Rs("Value")) + 1
         Rs.Update
          NumAuto = Val(Rs("Value"))
            Rs.Close
        .Close
    End With
    End Function
    le fichier GENERATEUR_DE_NUMÉROS_DESERIE.xlsm c'est la macro!
    le fichier GENERATEUR_DE_NUMÉROS_DESERIE.xlsx c'est la base de données de configuration!

    bien sure le fichier GENERATEUR_DE_NUMÉROS_DESERIE.xlsx reste toujours fermé!
    Fichiers attachés Fichiers attachés
    Dernière modification par Invité ; 17/01/2017 à 12h40.

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Rien à voir avec le contenu de la discussion mais dysorthographie = rdurupt ?
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vinc_bilb Voir le message
    Bonjour,

    Rien à voir avec le contenu de la discussion mais dysorthographie = rdurupt ?
    bonjour vinc_bilb; OUI!

    "dysorthographie " mise au point pour certains internautes qui s'attache plus à la forme qu'au contenue , ça valait bien 6 étoile non?

  9. #9
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    "dysorthographie " mise au point pour certains internautes qui s'attache plus à la forme qu'au contenue , ça valait bien 5 étoile non?
    => Ben oui, en plus de la photo, il me semblait bien reconnaitre la patte du Maître dans le code
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  10. #10
    Invité
    Invité(e)
    Par défaut
    oui; un code c'est comme une empreinte digitale! merci pour ta sollicitude.

  11. #11
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, à titre de curiosité : GUID utilities

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Bonjour,
    Merci à tous, je vais voir avec vos pistes. Actuellement mon boulot me prends beaucoup de temps
    et j'ai peu de dispo. Je vous tient au courant dans les jours qui viennent.
    Bonne soirée,
    JCM

  13. #13
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Pourquoi vouloir à tout prix laisser chaque utilisateur créer un numéro de série ?

    C'est bien plus simple d'avoir une seule personne qui crée une collection de numéros de série, disons une fois par semaine, et de créer une routine de lecture pour ceux qui en ont besoin.

    Si jamais le générateur ou le micro faisaient défaut, cela éviterait de passer trois éternités à chercher la machine qui plante ou à installer le programme sur toutes les machines.

    Même que la lecture peut se faire sur une page Web minimaliste à accès limité.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. Contrôles ActiveX figés sur classeur partagé
    Par atefvinc dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 01/06/2012, 08h15
  2. [XL-2003] message d'erreur sur classeur partagé
    Par MarcelG dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/03/2010, 18h21
  3. Wincom VT320 connexion sur port série sans réponses.
    Par Pitchou`n dans le forum Windows XP
    Réponses: 0
    Dernier message: 20/03/2008, 13h26
  4. Réponses: 3
    Dernier message: 12/11/2007, 14h35
  5. Il existe un nom en double sur le reseau - Sans issue
    Par rpoulin dans le forum Hardware
    Réponses: 4
    Dernier message: 14/02/2007, 09h50

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