Ligne vierge + classement par date
Bonjour,
je cherche une solution afin de conserver une ligne vierge dans laquelle l'utilisateur peut venir y insérer des renseignement (alpha-numérique) mais qui va basculer son contenue dans la ligne du dessous afin qu'elle reste en disponible en permanence. Plus clairement, cette ligne placée en début de document doit rester vierge après chacune de ses utilisations pour permettre à l'utilisateur d'insérer une ligne plus rapidement (Cela évite de scroller vers la dernière, ou éviter la manipulation d’insertion de ligne).
Seconde question, le contenu d'une de mes colonnes sont des dates du type XX/XX/XXXX. Je désire trier les lignes en référence à leurs dates de manière croissante (Les dates les plus proches sont en tête) et ce de manière automatique.
Je ne sais pas du tout si cela est possible, c'est pour cette raison que je m'adresse à vous. Merci de m'éclairer
Salut Bob et bienvenue sur le Forum,
Au lieu d'avoir une ligne vide en début de document, tu pourrais avoir un bouton qui trouve automatiquement la dernière ligne (sans devoir scroller) ; est-ce que ça pourrait aussi te convenir ?
Pour ton problème de date, ce serait quand même plus facile en ayant un fichier à disposition. Merci d'en joindre un à ton prochain message.
Cordialement.
Bonjour Yvouille, merci à vous de vouloir m'aider. Excusez moi du délai un peu long. Donc j'ai fait quelques petite recherches sur internet et j'ai trouvé quelque chose d’intéressant, le résultat n'est pas mauvais même si cela fait "usine à gaz". Je n'utilise pas de macros (car je n'y connais strictement rien), et mes formules sont très très limité. C'est mon premier travail sérieux sur Excel.
Donc je vous glisse le fichier Excel. Ici, il n'est pas question de classer les lignes dans l'ordre mais de glisser un petit tableau qui récapitule la priorité des demandes à l'aide du résultat de la date. Le problème c'est que le résultat est l'inverse du résultat attendu car les dates les plus lointaines sont prioritaires. J'ai essayé de changer la fonction"GRANDE.VALEUR" pat PET.VALEUR en éspérant renverser la tendance malheureusement mes connaissances sont trop limitées pour y remédier.
J'examine le prochaine point qui consisterai à créer un bouton de "RESET" qui supprimer les lignes qui contienne la valeur "OUI" dans la colonne "TRAITEE ?".
Manque plus que la création d'une ligne "maîtresse" vierge qui bascule automatiquement les valeurs sur la ligne suivante.
Salut Bob,
Je n'arrive pas à ouvrir ton fichier, j'ai un message qui indique que le format n'est pas compatible. Es-tu certain d'avoir bien enregistré ton fichier au format .xls ? Dans tous les cas, je ne peux pas ouvrir des fichiers autre que .xls jusqu'à dimanche, car je n'ai qu'Excel 2003 à disposition jusqu'alors.
Merci de tenter d'ouvrir toi-même le fichier fourni sur le Forum afin de voir si le problème n'est que chez moi et sinon merci d'être patient. A moins qu'un autre membre puisse t'aider de suite
Amicalement.
C'est peut être de ma faute, car le fichier original est de 2003 et j'ai voulu l’enregistrer dans un autre format. Le suivant devrait fonctionner !
Pour la ligne vierge, j'ai pensé à introduire un bouton qui créer une nouvelle ligne vierge similaire aux lignes "type". Est-ce un bon choix ? Ou alors, il est possible qu'elle se crée de manière automatique après avoir complété une cellule précise....
Merci encore !
Ps: je suis perdu pour l'extension de fichier.... Voici la version "classeur excel prenant en charge les macros. En espérant qu'il fonctionne.
Voici une autre solution mais qui utilise une macros ce qui soulage énormément la lourdeur du fichier. Cependant je ne sais comment l'adapter à ma situation. VOus avez pu remarqué quand dans le précédant fichier, j'ai inséré des boutons qui supprime la ligne avec une validation. Cela marche un peu près.
Pour ce qui suit, il faudrait l'adapter pour le tableau suivant :
Seule la première colonne doit rester fixe. Alors que dans le fichier la dernière reste fixe également.
Les autres colonnes doivent être classé dans l'ordre croissant en fonction de la date et non du nombre.
Le tableau doit se présenter comme suit :
Priorité | Nom | N°Demande | N°commande client | Désignation | Nombre | Descriptif | Délai
Seul "Priorité" reste fixe.
Seul "délai" permet le tri croissant des lignes.
Seule la colonne"Descriptif" n'est pas obligatoire pour que la condition de tri soit remplie.
Re,
Je t'ai dis que je n'avais qu'Excel 2003 à disposition pour quelques jours encore et que je ne peux lire que les fichiers .xls.
Par contre, on peut enregistrer des fichiers .xls avec Excel 2010 de manière à ce qu'ils soient lisibles sur Excel 2003 ; il faut normalement faire "Enregistrer sous" et choisir le type de fichier "Excel 2003" ou "Excel 1997-2003" ou un truc dans le genre.
Cordialement.
Autant pour moi ! Encore une fois j'ai moi des messages m'indiquant un problème de compatibilité. Le voici en format Excel 2003. Mais il n'est pas marqué que ce dernier prend en charge les macros.....
Tu constatera que ma liste déroulante dans la colonne "nom" indique une petite fenêtre jaune (que j'ai paramétré) en permanence alors que le mot et bien présent dans la sélection dans la feuille "Liste". Je ne comprend pas pourquoi d’ailleurs.
Pour ce qui concerne la ligne automatique, je pensais utiliser le système de couper coller automatique d'une ligne entière sur la suivante lorsque l'utilisateur remplie l'ensemble des colonnes du tableau. Après quoi, elle est triée comme dans le fichier ci-joint en fonction de la date.
Ca y est j’ai pu ouvrir ton fichier. Avec Excel 2003, il n’y a pas de différence entre les fichiers acceptant les macros ou non.
Concernant la validation, je ne comprends pas vraiment ce que tu veux faire. Mais pour l’instant tu as mis en place un «Message de saisie» (que je n’ai encore jamais utilisé personnellement) ainsi qu’une «Alerte d’erreur». Je trouve donc tout à fait normal que ce texte s’affiche lorsque tu sélectionnes une cellule déjà remplie de la colonne B de la feuille Feuil1. Je te conseille donc de supprimer le «Message de saisie» et de ne laisser que l’«Alerte d’erreur» qui me semble plus utile puisqu’elle empêche la saisie d’un nom incorrect. Pour cette «Alerte d’erreur», j’utiliserais personnellement plutôt le style «Arrêt» plutôt que le style «Avertissement» actuellement en place.
Concernant la saisie de tes lignes, il me semble qu’un formulaire serait plus clair qu’une ligne vide, qu’en penses-tu ? A tout hasard, si tu ne vois pas ce que je veux dire, un formulaire s’ouvre normalement en cliquant sur un bouton que l’on pourrait appeler «Nouvelle saisie» et une fenêtre s’ouvrirait dans laquelle l’utilisateur inscrirait ses informations. Ensuite en cliquant sur «OK» par exemple, les données seraient reportées dans la liste qui serait immédiatement triée. Qu’en penses-tu ?
Sinon l’on peut bien partir sur l’idée de ta ligne vide en début de liste, mais ça me parait peu «professionnel».
A te relire.
Edit de dimanche soir à 17:35 :
Voici un exemple de ce que l'on peut faire avec un formulaire. A voir ce qu'il faudrait encore modifier (n'accepter que des dates pour cetaines saisies, etc.).
PUNAISE !!!! Mais c'est vraiment super Yvouille, très bon idée. Je n'y avais pas pensé car je ne connais pas les possibilité d'Excel, qui je dois le reconnaître, est un outil très puissant. Cette manœuvre me donne de plus en plus envie de me lancer dans l'aventure tant les possibilité offertes sont nombreuses. Mais le langage vba est compliqué comme tous les autres type de langage. J'ai de très mauvais souvenir avec le C et c++ pendant 2 ans.
Mais ton idée est excellente et parfaite dans mon cas. Donc Je vais reprendre ton idée et l'associer au tri des lignes. Mais il faut que j'essaye d'adapter cette méthode au schéma que j'ai décrit ci-précédant. La priorité doit être une colonne fixe par exemple. Autre petit problème que j'ai pu remarqué : Lorsque je désire rentrer une date dans la colonne "délai" mon macros supplémentaire "mDF XLcalendar" ne s'affiche plus puisque je passe par une fenêtre de sélection. Ce macros additionnel est très utile pour la saisie et l’aperçu des dates. Habituellement, il suffit de sélectionner la cellule et il apparaît aussi tôt.
Donc pour le tri des lignes c'est ok ?
Pour le bouton supprimer, il doit être en lien avec la colonne "Traitement ?" avec liste déroulante "oui" ou "non". Les lignes qui comportent "oui" disparaissent alors que "non" ou aucune valeur restent.
Voici comment le tableau apparaît :
Priorité | Nom | N°Demande | N°commande client | Désignation | Nombre | Descriptif | Délai | Traitement
Priorité reste fixe
Re,
C'est pas évident de te suivre dans tes explications, tu pars un peu dans tous les sens. De plus tu as fourni tellement de fichiers différents que je ne sais plus duquel tu parles
Dans quel fichier as-tu cette macro ???? Je ne l'ai pas trouvée dans le deux premiers fichiers fournis. Comment fonctionne-t-elle ?Bobléponge a écrit :Lorsque je désire rentrer une date dans la colonne "délai" mon macros supplémentaire "mDF XLcalendar" ne s'affiche plus
Effectivement que se n'est pas un problème de continuer mon code en y incluant un tri, même en laissant la colonne "Priorité" fixe ; mais tu le fais toi comme indiqué ou tu désires que je le fasse ?Bobléponge a écrit :Mais ton idée est excellente et parfaite dans mon cas. Donc Je vais reprendre ton idée et l'associer au tri des lignes.
Je ne sais absolument pas de quoi tu parles !Bobléponge a écrit :Pour le bouton supprimer, il doit être en lien avec la colonne "Traitement ?" avec liste déroulante "oui" ou "non". Les lignes qui comportent "oui" disparaissent alors que "non" ou aucune valeur restent.
Il vaudrait mieux fournir ton fichier Excel réel plutôt qu'un texte peu utile comme celui-ci.Bobléponge a écrit :Voici comment le tableau apparaît :
Priorité | Nom | N°Demande | N°commande client | Désignation | Nombre | Descriptif | Délai | Traitement
A te relire.
pour l'instant je suis en plein apprentissage donc il est normal que je cafouille, les découvertes sont nombreuses et je ne sais plus ou donner de la tête. Donc voici un fichier propre avec l'ensemble des macros. En revanche ils ne fonctionnent pas tous puisqu'il est nécessaire de les adapter. Pour l'instant je ne peux pas car j'ai trop peu de connaissance pour le faire moi-même. Peut être un plus tard j’espère....
Récapitulatif :
Macros traitement :
- Le bouton RESET doit pouvoir supprimer uniquement les lignes du tableau, c'est-à-dire lignes supérieure à 3. Il ne doit en aucun cas supprimer la ligne « titre » n°2.
- Le MsgBox du macros « Supprimer » doit indiquer « L’état de traitement ne permet la suppression de la ligne n° (ligne sélectionnée par l’utilisateur).
Macros Tri :
- Le tri doit s’effectuer en fonction du délai dans l’ordre croissant. Les dates les plus proches doivent se retrouver en tête. La colonne priorité reste fixe.
- Seules les colonnes « Nom », « Désignation article », « Nbr » et « Délai » sont une condition pour que le tri s’effectue automatiquement.
Macros Formulaire :
-Le « TextBox_Delai » doit afficher le macro additionnel Mdf XLcalendar pour faciliter la saisie des dates.
J'ai essayer de reprendre ton idée précédente mais voici mon message d'erreur (voir image jointe "erreur_vba.jpg"). Une erreur toute bête mais suffisamment complexe pour un débutant.
Voici le lien du macros additionnel Mdf XLcalendar pour que tu puisse avoir de plus ample information à son sujet :
http://www.mdf-xlpages.com/modules/TDMDownloads/singlefile.php?lid=19
Aurais tu l’amabilité de m'expliquer les codes présents dans le tri ainsi que les modifications que tu apportes au code à l'aide de commentaires pour que je puisse mieux comprendre ?
Salut,
Tes demandes vont de nouveau un peu dans tous les sens et ne ressemblent plus trop à celle de ton premier message.
De plus tu utilises des codes et formulaires qui fonctionnent et tu les transformes à ta manière puis tu demandes ce que tu as fait de faux ! Peu motivant pour celui qui avait tout d'abord fourni un travail à moitié correct.
Je ne vais donc pas essayer de répondre à toutes tes questions mais, pour l'instant, je te fais remarquer simplement quelques erreurs de ta part que tu pourras déjà corriger :
- A mon avis c'est une erreur de placer les boutons sur une feuille séparée de celle où ils sont utilisés.
- Tu as renommé mes boutons de commande CommandButton_annulation et CommandButton_Validation et lorsque tu as transformé les titres des codes s'y rapportant Private Sub CommandButton_annulation() et Private Sub CommandButton_Validation(), tu as effacé par erreur la partie _Click, d'où ton message d'erreur.
- Tu utilises un nouveau ComboBox nommé ComboBox_Nom dont la liste n'est pas alimentée - comme dans mon exemple - par la propriété RowSource et tu as laissé tes validations en place ; validations que j'avais supprimé chez moi. Chez toi, si quelqu'un saisi un nom erroné, il sera reporté malgré ta validation. Avec ma méthode, la saisie d'un nom erroné est impossible.
- Il n'y a toujours pas de code mDF XLcalendar dans ton fichier
Ces quelques exemples pour te montrer que l'on travaille malheureusement en parallèles et donc en partie inutilement.
Reviens éventuellement avec un seul problème à la fois.
Cordialement.
Oui effectivement, j'ai ajuster le fichier de manière à ce qu'il ressemble un maximum à mes attentes. Pourtant j'ai essayé de le retranscrire de manière claire. Je ne vois pas l'évolution du fichier que tu m'as envoyé Yvouille mise à part la correction des _click ?
En revanche, j'ai pu les corriger et alimenter le ComboBox_Nom. Seulement je n'ai pas utilisé la propriété RowSource mais AddItem car je ne comprend pas. Nul part dans le code du fichier "Bob V1" je ne vois .RowSource dans le code. J'ai juste constaté la présence de "Liste_noms_feuille_Liste" dans la propriété RowSource sans qu'une liste soit présente dans le fichier... à m'expliquer donc
Pour ce qui est du XLcalendar, c'est un macro qu'il faut installer sur sa propre machine donc normal que tu n'y ai pas accès. Mais laissons tombé cette idée de faire apparaître se calendrier au moment ils cliquent sur TextBox_Delai.
Il reste donc à faire fonctionner le tri des lignes, les boutons supprimer et reset décrit précédemment, et le combox. Merci d'essayer de m'aider car je sais que tout n'est pas clair.
Salut,
C'est normal, je t'ai indiqué clairement : "Je ne vais donc pas essayer de répondre à toutes tes questions mais, pour l'instant, je te fais remarquer simplement quelques erreurs de ta part que tu pourras déjà corriger ".Bobléponge a écrit :Je ne vois pas l'évolution du fichier que tu m'as envoyé Yvouille mise à part la correction des _click ?
Ce n'est pas dans le code qu'il y a cette propriété. Regarde l'image ci-dessous :Bobléponge a écrit :Nul part dans le code du fichier "Bob V1" je ne vois .RowSource dans le code.
Une autre propriété, Style, permet de n'autoriser que le choix des membres de la liste indiqués sous RowSource.
En résumé, tu définis le nom d'une liste par Formules/Gestionnaire des Noms/Nouveau, tu indiques le nom de cette liste sous RowSource du Combobox concerné ainsi que le style 2fmStyleDropDownList et lorsque tu ouvres ton formulaire, uniquement les membres de la liste sont sélectionnables. Dans l'image ci-dessous, tu vois comment j'ai défini la liste appliquée à RowSource :
D'accord, en regardant rapidement le site que tu m'avais conseillé, je pensais que c'était un code que l'on pouvait rajouter à une macro, mais je n'avais pas trop approfondi la chose.Bobléponge a écrit :Pour ce qui est du XLcalendar, c'est un macro qu'il faut installer sur sa propre machine donc normal que tu n'y ai pas accès.
Ca fait beaucoup de demandes complémentaires à celle que tu avais indiqué en premier. Comme je ne vais pas avoir trop de temps ces jours prochains, je te propose d'indiquer ce fil comme résolu (tu cliques dans l'un de tes messages sur le petit V vert), tu recommences un nouveau fil en étant beaucoup plus précis dans ta première demande et surtout, tu fournis dès le départ un fichier réel. Plein d'autres membres vont alors venir à ton secourBobléponge a écrit :Il reste donc à faire fonctionner le tri des lignes, les boutons supprimer et reset décrit précédemment, et le combox.
Désolé de te laisser un peu tomber
Merci pour la précision concernant la propriété RowSource
Merci pour ta compréhension
Amicalement