Réaliser un tableau excel avec incrémentation

Hyriu29

XLDnaute Junior
Bonjour,
Je suis nouveau sur votre forum, j'utilise excel pour réaliser des tableaux relativement simples comprenant parfois des fonctions imbriquées.
Mon problème:
Je veux réaliser un Tableau dans le cadre d'une Exposition d'objets;

- il y a "x" inscrits participants (colonne A)
- chaque artiste expose des objets (de 01 à 12 objets par exposant) (colonne B)
- les objets sont accrochés sur des panneaux numérotés (de 01 à 100)
- les objets mis sur le panneau 01, auront les numéros 01-02-03 (parce que le nombre d'objets est 3 et qu'ils sont sur le panneau n°1)
- sur le panneau 02, 3 objets exposés également, donc les numéros seront 04-05-06
- sur le panneau 03, 2 objets seulement, donc les numéros qui suivent doivent être 07-08
et ainsi de suite.
Je souhaite donc une incrémentation automatique des numéros attribués aux objets, dans l'ordre des n° de panneaux (panneau 1 à 100)
Merci de votre aide, pièce jointe
Hyriu29
Regarde la pièce jointe Tableau des Exposants.xlsRegarde la pièce jointe Tableau des Exposants.xls
 

vgendron

XLDnaute Barbatruc
Re : Réaliser un tableau excel avec incrémentation

Le test d'existence d'objet n'existait plus parce que dans un post, tu n'es pas reparti de la dernière version de fichier.. pas grave

V15:
j'ai remis le test
j'ai remis les commentaires dans le code (à garder absolument) sinon, quand tu iras revoir le code. tu ne saura plus ce que ca faisait..
j'ai rajoutté le "classement"
 

Pièces jointes

  • Tableau des Exposants_V15.xlsm
    70 KB · Affichages: 46

Hyriu29

XLDnaute Junior
Re : Réaliser un tableau excel avec incrémentation

C'est parfait, on y arrive !!!
Question 1
Il arrive qu'un visiteur votant, n'inscrive sur son bulletin qu'un seul numéro, dans ce cas, le message "manque un ou plusieurs votes" va s'afficher et donc le vote ne va pas pouvoir être enregistré !
Il existe peut être une astuce pour répondre à ce cas de figure ?

Question2:
Cette ligne ajoutée, qui force la recopie de la formule, dans la feuille Classement, ne posera t-elle pas de problème si le fichier est ouvert avec une version autre que celle installée sur mon ordi? autrement ce fichier pourra t-il être lu sur un autre PC
possédant excel?
Hyriu29
 

vgendron

XLDnaute Barbatruc
Re : Réaliser un tableau excel avec incrémentation

question 1
si tu souhaites laisser la possibilité de ne pas voter pour 3 objets, il suffit d'enlever le test "Vote vide"
par contre; il faut l'adapter pour que la suite de la macro (qui teste un objet en double et l'existence d'un objet) ne plante pas
en effet: un objet vide va faire planter le code.
solution simple de contournement: remplir par défaut avec des "-"
et le code devient
Code:
Sub ValiderVote()

'macro appelée lorsque la cellule E9 est sélectionnée
'permet de valider le vote d'un visiteur
'et de l'enregistrer dans le TabVotes
'un vote vide doit etre renseigné par "-"


''un des votes est manquant
'If (Range("E6") = "") Or (Range("E7") = "") Or (Range("E8") = "") Then
'    MsgBox ("manque un ou plusieurs vote(s)")
'    Exit Sub
'End If

'aucun vote saisi..
If [E6] = "-" And [E7] = "-" And [E8] = "-" Then Exit Sub
'un des objets a été choisi plusieurs fois
If ([E6] <> "-" And ([E6] = [E7] Or [E6] = [E8])) Or ([E7] <> "-" And [E7] = [E8]) Then
    MsgBox ("Impossible de voter deux fois pour le meme objet")
    Exit Sub
End If

'controle de l'existence des objets saisis
For Each NumObjet In Range("E6:E8")
    If NumObjet <> "-" Then
        ObjetNotExist = False
        Set c = Range("TabClassement").Columns(3).Find(NumObjet)
        If c Is Nothing Then
            MsgBox ("objet n° " & NumObjet & " n'existe pas!")
            Range(NumObjet.Address) = "-"
            ObjetNotExist = True
        End If
    End If
Next NumObjet
If ObjetNotExist Then Exit Sub

'ajout de lignes en début de TabVotes
Range("A2:B2").Select
Selection.ListObject.ListRows.Add (1)
Selection.ListObject.ListRows.Add (1)
Selection.ListObject.ListRows.Add (1)

Range("E6:E8").Copy Destination:=Range("A2")
Range("D6:D8").Copy Destination:=Range("B2")

'à la fin du vote, on efface les cellules E6:E8
Range("E6:E8") = "-"
'et on se replace en E6 pour un nouveau vote
[E6].Select

End Sub

pour la question 2
suffit d'essayer ;-)
mais à priori, je ne vois aucun souci
meme si la table se rempli automatiquement (ce qui marche chez moi mais pas chez toi); on réécrit la meme formule au meme endroit.



PS: pour le TabVotes: j'ai fait exprès de le remplir avec les votes vides, sinon, le compteur de visiteur est faussé..
 
Dernière édition:

Hyriu29

XLDnaute Junior
Re : Réaliser un tableau excel avec incrémentation

Suite de ton dernier post du vendredi 27/11 :
Pièce jointe v15modifie

Bonjour,

J’ai copié la macro jointe à ton dernier post, dans la version v15 (développeur/macro/sélection de la macro Sub ValiderVote puis coller).
Lors de cette manip, en lisant le contenu, je me suis aperçu que les 4 dernières lignes ci-après étaient de couleur verte comme le texte.
En cherchant sur internet j’ai appris que pour Visual basic les lignes précédées de ' étaient considérées comme du texte. Donc je me suis permis d’enlever ce caractère (‘)sur ces 4 lignes.
Histoire d’apporter ma modeste part à ton immense travail !
''un des votes est manquant
'If (Range("E6") = "") Or (Range("E7") = "") Or (Range("E8") = "") Then
' MsgBox ("manque un ou plusieurs vote(s)")
' Exit Sub
'End If
Ai-je bien fait?
Tout semble fonctionner, sauf la formule de calcul du nombre de votants, dans le cas justement ou un étourdi de votant, ne vote que pour un numéro !
Le vote du visiteur est divisé par 3 ce qui ajoute au compteur : 0,3333. Voir fichier joint :
Le nb de visiteurs ayant voté= 10,33333
Y a t-il une solution pour répondre à ce cas de figure?
Dans l'attente de ta réponse,
Cordialement,
Hyriu29
 

Pièces jointes

  • Tableau des Exposants_V15modifie.xlsm
    68.8 KB · Affichages: 48

vgendron

XLDnaute Barbatruc
Re : Réaliser un tableau excel avec incrémentation

Hello

Ai-je bien fait?
oui si tu souhaites que une case vide soit considérée comme un vote manquant
ca implique aussi que si le visiteur ne veut faire qu'un seul vote, le reste doit etre rempli par "-"
ca me semble pas mal

Le nb de visiteurs ayant voté= 10,33333
Y a t-il une solution pour répondre à ce cas de figure?

suffit de changer la formule en D3
=NB('Saisie des Votes'!$B$2:$B$43)/3

Vu que la validation enregistre les votes "Vides" avec un "-" j'avais modifié cette formule..
J'ai du oublié d'enregistrer

la fonction Nb compte le nombre de " nombre" dans la zone..
et un "-" n'est pas un nombre ;-)
 

Hyriu29

XLDnaute Junior
Re : Réaliser un tableau excel avec incrémentation

Bonjour vgendron,
Je tiens à te remercier, pour l'aide et l'écoute dans la réalisation de ce projet.
Je vais maintenant compléter ce tableau et le tester à nouveau.
L'automatisation obtenue dans ce tableau est remarquable, et répond parfaitement à mon projet.
Merci,
Cordialement,
Hyriu29
 

Hyriu29

XLDnaute Junior
à l'attention de vgendron lRe : Réaliser un tableau excel avec incrémentation

Bonjour vgendron,
je modifie mon message du 08 décembre (intitulé à ton attention), peut être n'as-tu pas vu mon message passer ?
J'ai déserté le forum pendant quelques jours, le temps de tester les fonctionnalités du fichier joint.
2 remarques:
- dans la feuille Saisie des votes, les cellules D6/D7/D8 (3 points, 2 points, 1 point), ne sont pas "verrouillées", je veux dire par là que lors de la saisie (répétitive) des votes (600 votants), le doigt sur le clavier peut déraper, et on peut ainsi changer le nombre de points attribués. Bien sûr, on peut corriger l'erreur et rétablir les bonnes valeurs y compris dans le tableau de classement des votes.
Ma question: peut-on figer ces 3 cellules?
- dans la feuille Liste des inscrits, pour ajouter des lignes supplémentaires d'inscrits, pas de soucis, quand je les ajoute par Copier/Coller, ça fonctionne bien; par contre si je me place ligne 22 (dans le fichier joint) et que je saisis sur le clavier un nom, j'ai le message suivant:
La valeur que vous avez tapée n'est pas valide. Un utilisateur a restreint les valeurs que peut prendre cette cellule.
Merci de ton aide,
Hyriu29
 

Pièces jointes

  • Tableau des Exposants_V16.xlsm
    75.4 KB · Affichages: 43
Dernière modification par un modérateur:

vgendron

XLDnaute Barbatruc
Re : Réaliser un tableau excel avec incrémentation

Hello

pour éviter de changer les valeurs par accident: 2 solutions
La solution excel : Protéger-Verrouiller les cellules: mais je n'ai jamais bien compris le principe..et le fonctionnement..
bref..
L'autre solution de facilité:
pour les trois cellules concernées, leur mettre à chacune une validation de donnée avec une seule valeur:
Données - Validation de Données - Liste -3 (ou 2 ou 1 selon la cellule)

pour les inscrits: tu as le message car tu saisis un nouvel inscrit au mauvais endroit..
les nouveaux inscrits doivent etre mis dans la liste des Photographes
ENSUITE.. dans le TabInscrit, tu ajouttes une ligne
-soit en tirant la table vers le bas: Triangle vert en bas à droite cellule S21
- soit en retappant un inscrit déjà présent (la table s'étend automatiquement)

Puis tu sélectionnes l'inscrit souhaité
 

Hyriu29

XLDnaute Junior
Re : Réaliser un tableau excel avec incrémentation

Salut vgendron,
Pour ma 1ère question j'ai choisis la solution de facilité (Données - Validation de Données - Liste -3 (ou 2 ou 1 selon la cellule))
Pour la 2ème question, j'ai compris mon erreur.
Merci pour tout,
Cordialement,
Hyriu29
 

Discussions similaires

Réponses
16
Affichages
509
Réponses
2
Affichages
519

Statistiques des forums

Discussions
312 215
Messages
2 086 324
Membres
103 179
dernier inscrit
BERSEB50