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

Excel Discussion :

Attribution de numéro automatiquement


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Attribution de numéro automatiquement
    Bonjour,

    Je souhaite attribuer une "référence" automatiquement en fonction d'un choix. Après plusieurs tentatives avec des formules je n'ai pas réussi c'est pourquoi je viens vous demander de l'aide
    Je m'explique :

    J'ai une colonne "étiquette" et une autre à coté "référence" et sur les lignes un nombre de produit x.
    "Étiquette" comporte une validation des données avec deux choix possible "jaune" ou "rouge".
    "Référence" est la référence de l'étiquette attribuée (jaune ou rouge)

    J'aimerais à chaque produit, attribuer une étiquette (jaune ou rouge) et qu'automatiquement on me donne le numéro de l'étiquette.

    Par exemple:
    J'ai un produit A1, si je lui attribue une étiquette "jaune". Automatiquement la référence attribuée est "0001".
    J'ai un produit A2, si je lui attribue une étiquette "jaune". Automatiquement la référence attribuée est "0002"
    Si je décide d'enlever l'étiquette à A1, je souhaite que le numéro "0001" soit réattribuable à un futur produit tout en conservant le numéro "0002" au produit A2.

    Pour les étiquettes rouge, même principe. Mais les références des étiquettes rouges ne suivent pas celles des jaunes.

    Je ne sais pas si c'est faisable via formules ou si il faut faire des macros. Mais j'aimerais bien que cela soit compatible à google sheet.
    J'ai joint un fichier si ça peut aider à la compréhension...

    Si quelqu'un peut m'aider ça serait sympa

    Merci

  2. #2
    Expert éminent
    Salut

    Les formules ne savent pas "mémoriser" une valeur, elles peuvent par exemple extraire une valeur max et retourner la suivante.
    Par exemple:
    1
    2
    3
    4

    Une formule pourra retourner 5... mais si tu supprimes le 4 de la liste, automatiquement ta formule va te retourner 4...
    A la limite tu te sers de la formule pour t'indiquer le chiffre disponible mais il faudra que tu le saisisses à la main...
    A mon avis il faut passer par VB pour faire ça mais ça ne sera pas compatible avec GoogleSheet.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Nouveau Candidat au Club
    Merci de ta réponse
    Mince, c'est bien ce qui me semblait...

    Et si on change le principe et que je souhaite afficher sur l'étiquette le numéro de la ligne par exemple?

    Ex: Je mets "jaune" dans etiquette ligne 4, la référence affichée est "4". Si je mets aucune etiquette je n'ai pas de valeur dans référence.

    C'est une formule SI( ?

  4. #4
    Expert éminent
    Salut

    Oui ça donnerait un truc comme ça =SI($D2<>"";TEXTE(LIGNE();"00000#");"") avec $D2 la cellule contenant Jaune/Rouge/Vide
    La formule peut s'étendre vers le bas, si tu utilises un tableau structuré (Insertion, Tableau) la formule se développera toute seule sur les nouvelles lignes.

    Si tu le souhaites, tu peux personnaliser le numéro de série en plaçant J ou R au début "J000001", avec la formule suivante =SI($D2<>"";GAUCHE($D2;1) & TEXTE(LIGNE();"00000#");"")

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Responsable
    Office & Excel

    Salut.

    Je ne sais pas à quoi va servir ton numéro, mais tiens tout de même compte du fait que si tu insères ou supprimes une ligne, ou que si tu tries tes données, tes numéros vont changer, puisque Ligne() renvoie le numéro de la ligne de la cellule dans laquelle elle est utilisée.

    Excel n'est pas fait pour cela, et il n'est donc pas équipé pour. Je ne vois que deux solutions: garder une trace manuelle du dernier numéro utilisé, ou réaliser cette "trace" en VBA (mais adieu google sheets => je ne comprends pas pourquoi on développe un classeur Excel pour l'utiliser sous Google Sheets. Il me semblerait plus simple de le créer directement sur google sheets)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------