Fonction pour generer des numero de sieges place max 30 l'une a coté de l'a

Bonjour Je debute dans VBA et je stagne a trouver cette fonction : (Des sieges pour une salle de spectacle pour permettre a l'utilisateur de pouvoir acheter en ligne les billets )

Génère les numéros de sièges (pour un nombre de places donné) l'un à coté de l'autre.

Les sièges sont stockés dans un String séparés par un virgule

Les numéros ne doivent pas dépasser 30 en fichier joint le plan de la salle .

Toutes aide est la bienvenue . merci d'avance

capture d ecran le 2019 11 21 a 16 09 03

Bonjour,

Sujet intéressant, mais je ne suis pas sûr d'avoir bien compris ...

  • Y a t-il déjà aujourd'hui une numérotation globale des places ? sinon on prendra la référence des cellules donnée par ton schéma excel.
  • Y a t-il une contrainte de prix (selon la couleur des sièges par exemple) ou toutes les places sont équivalentes ?
  • Quand tu dis "Génère les numéros de sièges (pour un nombre de places donné) l'un à coté de l'autre." je comprends que l'acheteur indique qu'il lui faut x places et qu'il faut donc lui trouver x places côte à côte encore disponibles ... cela veut dire en excel en ligne ou en colonne ou mixée ligne/colonne sur plusieurs rangs ?
  • Enfin, y a t'il un ordre de priorité de recherche : près de la scène par exemple ?

Merci pour la réponse donc oui il y’a une différence de prix par rapport au couleur j’ai déjà fait la fonction et oui quand l’utilisateur achète un nbr de place il faut que ça soit coté à côté ( siège 1 à côté de siège 2 ...) et non y’a pas de sélection par rapport à la scène . Merci

Peux-tu aussi nous joindre cette feuille excel afin d efaciliter la tâche ?

merci

En démarrant ma réflexion, je pense qu'il faut aussi "optimiser" les propositions selon le type d'événement. Notamment ne pas laisser des places "solitaires" si le spectacle est plutôt familial !

J'attends ta feuille excel pour démarre concrètement ...

Voici une première étape ...

J'ai ici sélectionné des emplacements de au moins 6 places en catégorie A

Il me reste maintenant à traiter les réservations en cochant les places réservées et recalculer ...

16placement.xlsm (42.29 Ko)

houa super steelson bien fait le fichier

Le plus intéressant est à venir sans doute ...

voila plus de details de ce que j'ai fait

16tp5-inf1005b-a19.pdf (164.82 Ko)

Bonjour Steelson merci pour ton interet .

J'ai regardé tes fichiers ... ton exo est balèze !! Le niveau est top !

Voilà où j'en suis avec la possibilité de réserver ne mettant des croix et d'annuler une réservation.

Juste un bug quand même, je prends en compte à tort les sièges les uns derrière les autres !! mais c'est complexe.

Mais j'ai l'impression de suivre une autre voie que ce qui est demandé ! Mon but ici était de pouvoir répondre avec des n° de places aux commandes de billets groupés.

4placement.xlsm (47.64 Ko)

Oui On est pas sur la meme voie lol . C'est normal tu n'avais pas beaucoup d'info en fait comme tu viens de voir dans le fichier j'ai deja les rangéés (classées par lettre) et les zone par couleur .D'ailleurs c'est donnée dans l'ex . la on doit attribuer les numeros en plus aux sieges et que ca soit en ordre . Et oui c'est pas facile comme exo

Maintenant que j'ai en effet plus d’informations, je suis un peu perdu dans ton exercice.

Je comprends la numérotation des rangées de A à F, mais pourquoi de A à L pour la zone rouge ?

capture d ecran 193

Je regarde en parallèle pour la numérotation des sièges, peut-on fixer une origine ? et un sens (horaire ?)

Du coup cela me permettra ensuite d'adapter mon code (juste pour le fun).

Proposition de numérotation ... dis moi si c'est la cible que tu vises ...

Les rangées F en bleu vont bien en effet jusque 30.

capture d ecran 194

Je regarde en parallèle pour la numérotation des sièges, peut-on fixer une origine ? et un sens (horaire ?)

Du coup cela me permettra ensuite d'adapter mon code (juste pour le fun).

Salut Steelson donc pour te repondre non ce n'est pas demandés dans l'exercice sinon pour la proposition de numerotation ca ma l'air juste . je ne comprends pas non plus pourquoi de A a L pour la zone rouge mais c.,est ce qui m'est demandés dans L'exo .

Pour la numérotation ...

A adapter dans ton cas (je n'ai pas utilisé ENUM mais j'ai 2 masques dans 2 onglets pour les rangées et les catégories)

Sub numeroter()
Dim dico As Object
Set dico = CreateObject("Scripting.Dictionary")
Sheets("Numéro").Select
For Each cel In Range("plage")
    If Sheets("Catégorie").Cells(cel.Row, cel.Column).Value <> "" Then
        ID = Sheets("Catégorie").Cells(cel.Row, cel.Column) & Sheets("Rangée").Cells(cel.Row, cel.Column)
        dico(ID) = dico(ID) + 1
        cel.Value = Sheets("Rangée").Cells(cel.Row, cel.Column) & Right("00" & dico(ID), 2)
    End If
Next
End Sub
capture d ecran 195
6numerotation.xlsm (22.50 Ko)

quand j'essaye ton code j'ai une erreur d'excution .. est ce que tu l'as essayé de ton coté .

peux tu aussi me dire SVP c'est quoi la fonction qui il faut pour les stocké dans un string .

merci

quand j'essaye ton code j'ai une erreur d'excution .. est ce que tu l'as essayé de ton coté .

Oui j'ai testé le code avant de te l'envoyer

Dis moi à quelle ligne se situe l'erreur

Je te renvoie le fichier avec un bouton et une feuille "vierge"

Comme j'ai signalé, à toi de l'adapter à ta feuille (que je n'avais pas au début) car je n'ai pas utilisé ENUM mais j'ai 2 masques dans 2 onglets pour les rangées et les catégories, je suis en effet parti dans une autre direction

Néanmoins la logique est la même !

5numerotation.xlsm (25.45 Ko)

peux tu aussi me dire SVP c'est quoi la fonction qui il faut pour les stocké dans un string .

Je n'ai pas compris cette question ! et je ne vois pas l'intérêt

Tout est stocké en string dans les cellules de la feuille excel

En tous cas, le résultat est atteint, les cellules sont numérotées et ce dernier ne dépasse pas 30.

Si tu travailles sur mac, alors en effet Scripting.Dictionary ne fonctionne pas !

Mais apprendre excel sur un mac, désolé, même si je n'aime pas le monde microsoft à 100% (hormis excel), apprendre excel sur autre chose que sur un PC Windows te privera de beaucoup de fonctionnalités ! J'espère que dans votre formation sur place vous n'utilisez par des mac pour cela !

Ceci devrait fonctionner sur mac

Sub numeroter()
Sheets("Numéro").Select
For Each cel In Range("plage")
    If Sheets("Catégorie").Cells(cel.Row, cel.Column).Value <> "" Then
        ID = Sheets("Catégorie").Cells(cel.Row, cel.Column) & Sheets("Rangée").Cells(cel.Row, cel.Column)
        Range(ID & "1") = Range(ID & "1") + 1
        cel.Value = Sheets("Rangée").Cells(cel.Row, cel.Column) & Right("00" & Range(ID & "1"), 2)
    End If
Next
End Sub
3numerotation.xlsm (23.47 Ko)
Rechercher des sujets similaires à "fonction generer numero sieges place max cote"