Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Je recherche la fonction suivante:
un adhérents (B5) passe la première semaine à 14h(C5),la deuxième semaine à 14h30(C5), la troisième semaine à 15h(C5), la quatrième semaine à 14h(C5) et ainsi de suite
Le changement de l'heure doit se faire chaque fois que l'on mets un chiffre en B5
la case B5 est remise à zéro toutes les semaines
Ce n'est pas ce que je recherche.(voir nouveau fichier)
Quand on scanne la carte adhérents, "OK" viens s'inscrire dans A12, l'heure de passage est à 14h
En fin de journée, on supprime toute les données de la colonne A.
je voudrais que chaque scan sur le même adhérents fasse changer l'heure de passage 14h puis 14h30,puis 15h et on recommence. Cela me permet de voir combien d'adhérents j'ai à 14h, 14h30,15h(ce sont des chiffres)
vous pouvez effacé "ok" si vous voulez
Bonjour
le scan se contente de placer "ok" dans la colonne A, le N° adhérent est déjà inscrit.
Nous faisons de la distribution alimentaire sur 3 plage horaire bien définie(14h, 14h30, 15h)
L'adhérents X passe la premier semaine à 14h la deuxième semaine à14h30, la troisième semaine à 15h et on recommence à 14h. Le changement ce fait à chaque scan.
A chaque passage vous scannez la carte de l'adhérent.
L'heure de passage prévue de l'adhérent est connue de ce dernier, vous ne faites pas passer l'adhérent sur un créneau sur lequel il n'a pas été prévu (vs. j'inscris l'heure de passage réelle de l'adhérent).
Du coup, à chaque lecture de la carte faut-il ?
Inscrire dans la cellule K12 une nouvelle information
garder une trace des 2 précédents passages en inscrivant le résultat dans les cellules K12:K14
Comment se détermine l'heure du premier passage (nouvel adhérent) ?
Pourquoi a-t-on des valeurs différentes dans la colonne E, on a une ligne par adhérent ou on a un onglet par adhérent ?
Lors du passage, il faut tenir compte du jour pour inscrire la somme due dans les colonnes M à Q ?
Que faire si l'adhérent présente une carte échue ?
A chaque passage vous scannez la carte de l'adhérent. oui
L'heure de passage prévue de l'adhérent est connue de ce dernier, vous ne faites pas passer l'adhérent sur un créneau sur lequel il n'a pas été prévu oui (vs. j'inscris l'heure de passage réelle de l'adhérent). Chaque adhérent doit passer à l'heure prévue
Du coup, à chaque lecture de la carte faut-il ?
Inscrire dans la cellule K12 une nouvelle information oui
garder une trace des 2 précédents passages en inscrivant le résultat dans les cellules K12:K14 non, K12;K14 sont des lignes d'adhérents.
Comment se détermine l'heure du premier passage (nouvel adhérent) ? c'est nous qui déterminons l'heure de passage( 14h, ou 14h30, ou 15h) Dans le tableau "décompte" nous savons combien de personnes sont de passage à 14h.14h,30.15h et nous équilibrons pour les nouveaux adhérents
Pourquoi a-t-on des valeurs différentes dans la colonne E, on a une ligne par adhérent ou on a un onglet par adhérent ? il y a une ligne par adhérents
Lors du passage, il faut tenir compte du jour pour inscrire la somme due dans les colonnes M à Q ? non oubliez ces cellules
Que faire si l'adhérent présente une carte échue ? rien, la date apparait dans une case rouge cela fonctionne bien a ce jour
Comment se détermine l'heure du premier passage (nouvel adhérent) ? c'est nous qui déterminons l'heure de passage( 14h, ou 14h30, ou 15h) Dans le tableau "décompte" nous savons combien de personnes sont de passage à 14h.14h,30.15h et nous équilibrons pour les nouveaux adhérents
Cela pose un problème évident.
Pour pouvoir déterminer la prochaine valeur du tableau, il faut connaître la valeur précédente.
Il faut donc préciser quelque part quelle est l'heure de départ d'origine.
Et ensuite on peut compter le nombre de fois que OK s'est affiché pour déterminer l'heure du passage (ou du prochain passage) (macro vba inévitable).
Ensuite on affiche l'heure du créneau en fonction du nombre de passages précédents.
Comme ça je vois bien une solution.
Réponse en gras
Cela pose un problème évident.
Pour pouvoir déterminer la prochaine valeur du tableau, il faut connaître la valeur précédente.
Il faut donc préciser quelque part quelle est l'heure de départ d'origine. Cette heure de départ va être affichée dans une case.
Cette case est t'elle commune à tout les adhérents ?(si oui pourquoi ne pas utiliser la case B9)
Ou faut il créer une case par adhérents.(dans ce cas je pense qu'il faut créer un colonne ,vous pouvez insérer une colonne après la colonne K)cette colonne peut elle être masquée? ou créer l'heure de départ dans une autre feuille
Et ensuite on peut compter le nombre de fois que OK s'est affiché pour déterminer l'heure du passage (ou du prochain passage) (macro vba inévitable).
Ensuite on affiche l'heure du créneau en fonction du nombre de passages précédents.
Comme ça je vois bien une solution. Ok si cela est possible
Alors j'arrive à la solution demandée en insérant deux colonnes supplémentaires.
La colonne K qui contient l'heure de passage initiale. Elle se rentre à la main, mais on pourrait même la déterminer automatiquement pour un nouvel adhérent en prenant la créneau le moins fréquenté si on souhaitait pousser l'optimisation au bout.
La colonne L qui contient le nombre de passages depuis la première fois.
Et j'ai renommé la colonne M "Prochaines heure de passage".
A chaque fois que tu scannes un code barre, le nombre de passage est incrémenté par la macro :
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = "ok" Then Range("L" & Target.Row) = Range("L" & Target.Row) + 1
End Sub
Elle vérifie si elle voit "ok" dans la colonne A et augmente de +1 le chiffre déjà présent dans la colonne L.
Quand tu effaces les "ok" rien ne se passe. Quand tu rajoute un "ok" le nombre de passages augmente à nouveau, automagiquement.
Si tu ajoutes ou effaces plusieurs cellules/formules à la fois, tu vas avoir un message d'erreur, mais tu peux l'ignorer et continuer à travailler. Je cherche une solution auprès des gourous de vb et je te dirai quoi modifier pour supprimer tout ça, si la solution existe.
En colonne L on définit la prochaine heure de passage en fonction du nombre de pointages avec la formule :
Ah oui, j'ai basculé toutes ces données en heures, parce que ça m'irritait de les traiter en chiffre
J'en ai profité pour changer les formules en D57, tu peux dénombrer 88 adhérents, à ajuster au besoin. La formule compte le nombre d'adhérents prévus par créneau horaire pour leur prochain passage, mais tu ne sais pas s'ils vont venir si j'ai bien compris...
Code:
=NB.SI(M$12:M$100;C5)
J'ai laissé le tableau en J1:K9 mais j'ai modifié les formules, notamment celle présente en J9, parce que je n'étais pas certain que tu aies besoin de tout ce qui est au dessus pour arriver à ce résultat auquel j'arrive par un autre moyen.
Code:
=NB.SI(J$12:J$100;">0")
Tu peux masquer les colonnes ajoutées bien entendu.
Alors j'arrive à la solution demandée en insérant deux colonnes supplémentaires.
La colonne K qui contient l'heure de passage initiale. Elle se rentre à la main, mais on pourrait même la déterminer automatiquement pour un nouvel adhérent en prenant la créneau le moins fréquenté si on souhaitait pousser l'optimisation au bout.
La colonne L qui contient le nombre de passages depuis la première fois.
Et j'ai renommé la colonne M "Prochaines heure de passage".
A chaque fois que tu scannes un code barre, le nombre de passage est incrémenté par la macro :
VB:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Value = "ok" Then Range("L" & Target.Row) = Range("L" & Target.Row) + 1
End Sub
Elle vérifie si elle voit "ok" dans la colonne A et augmente de +1 le chiffre déjà présent dans la colonne L.
Quand tu effaces les "ok" rien ne se passe. Quand tu rajoute un "ok" le nombre de passages augmente à nouveau, automagiquement.
Si tu ajoutes ou effaces plusieurs cellules/formules à la fois, tu vas avoir un message d'erreur, mais tu peux l'ignorer et continuer à travailler. Je cherche une solution auprès des gourous de vb et je te dirai quoi modifier pour supprimer tout ça, si la solution existe.
En colonne L on définit la prochaine heure de passage en fonction du nombre de pointages avec la formule :
Ah oui, j'ai basculé toutes ces données en heures, parce que ça m'irritait de les traiter en chiffre
J'en ai profité pour changer les formules en D57, tu peux dénombrer 88 adhérents, à ajuster au besoin. La formule compte le nombre d'adhérents prévus par créneau horaire pour leur prochain passage, mais tu ne sais pas s'ils vont venir si j'ai bien compris...
Code:
=NB.SI(M$12:M$100;C5)
J'ai laissé le tableau en J1:K9 mais j'ai modifié les formules, notamment celle présente en J9, parce que je n'étais pas certain que tu aies besoin de tout ce qui est au dessus pour arriver à ce résultat auquel j'arrive par un autre moyen.
Code:
=NB.SI(J$12:J$100;">0")
Tu peux masquer les colonnes ajoutées bien entendu.
Super merci,
Tout semble bien fonctionner, cependant
sur L 12 la formule est différente c’est normal ?=SI(ESTVIDE(L14);"";CHOISIR(SI(MOD(L14;3)=0;3;MOD(L14;3));"14:00";"14:30";"15:00"))
=CHOISIR(SI(MOD(L13;3)=0;3;MOD(L13;3));"14:00";"14:30";"15:00")
=CHOISIR(SI(MOD(L14;3)=0;3;MOD(L14;3));"14:00";"14:30";"15:00")
Ah oui bien vu. J'ai oublié de recopier la formule vers le bas, et j'avais gardé les références de test.
J'ai ajouté en ligne 12 une vérification pour que tu puisses insérer la formule sur les cellules en dessous sans que ça déclenche l'apparition d'une heure de prochain passage. Du coup je conditionne l'apparition de l'heure du prochain passage au fait qu'il y ai au moins un passage de l'adhérent. Pour son premier passage c'est inscrit en dur dans la colonne K.
Et je viens de voir que j'avais laissé une typo en C7, 15:30 eu lieu de 15:00.
Ah oui bien vu. J'ai oublié de recopier la formule vers le bas, et j'avais gardé les références de test.
J'ai ajouté en ligne 12 une vérification pour que tu puisses insérer la formule sur les cellules en dessous sans que ça déclenche l'apparition d'une heure de prochain passage. Du coup je conditionne l'apparition de l'heure du prochain passage au fait qu'il y ai au moins un passage de l'adhérent. Pour son premier passage c'est inscrit en dur dans la colonne K.
Et je viens de voir que j'avais laissé une typo en C7, 15:30 eu lieu de 15:00.