Création d'un logiciel d'aide à la sélection

CleCle.

XLDnaute Nouveau
Bonsoir,
Je suis en train de créer un logiciel d'aide à la sélection avec Excel. Cela consiste en répertorier l'ensemble d'un troupeau ovin (brebis) à travers, en premier lieu, leur numéro de travail (par exemple, 5005 pour "brebis née en 2015, la cinquième à naître ou 5001 pour la première née, ou encore 4008 pour la huitième née en 2014).
A partir de cela, il faut remplir toutes ses caractéristiques (âge, comportement, origine, couleur,...) mais aussi faire des moyennes de lactation... Bref, pleins de choses à la fois.
J'ai commencé sous VBA à créer "la base" qui consiste en l'inventaire (soit les caractéristiques de base de la brebis énumérées ci-dessus). Là, se pose mon premier problème : j'ai parlé d'un numéro de travail que l'éleveur doit rentrer et qui suit la brebis toute sa vie (et donc en particulier sur ce logiciel). Le soucis, c'est que sous VBA, j'ai créé ce que l'on appelle une case "texte" (pour qu'il puisse écrire dedans) et en validant toutes les données, cela se met sous forme de tableau excel. Or, comme j'ai expliqué plus haut, c'est un numéro de travaille (donc des nombres) et cela se met donc en format "texte" sous Excel (puisque c'est une case texte via VBA). J'ai essayé de bidouiller en changeant le format de la colonne entière et en mettant "nombre". Hélas, lorsque je rajoute une nouvelle brebis, il se met toujours sous forme de texte. Je ne sais pas comment faire pour modifier cela.
D'autre part, j'ai plusieurs catégories (Inventaire, données techniques, analyse des résultats, aide à la sélection) que j'ai décidées de faire chacune sur une feuille séparée, pour plus d'ergonomie. Mon autre problème est alors que je dois toujours passer par ce numéro de travail, sachant qu'il doit à chaque fois correspondre d'une feuille à l'autre (par exemple, si je le tape dans la première feuille, qu'il apparaisse dans la seconde, et les calculs se feront automatiquement, après). Or, en plus de correspondre d'une feuille à l'autre, il ne doit pas gêner lorsque l'éleveur rajoute une brebis. C'est à dire qu'elle s'ajoute automatiquement dans la première feuille (toutes les données sont en colonne, donc une ça correspond à des lignes pour la brebis une brebis = 1 ligne) MAIS que les autres feuilles s'adaptent aussi pour que le tout soit cohérent : en réalité tout est lié, puisque la dernière feuille reprendra l'essentiel des autres feuilles pour attribuer des notes à des brebis, toujours en fonction de leur numéro.
Je vous donne en PJ mon travail effectué jusque là en fait, il est trop lourd (4MO) pour passer par le forum, comment puis-je l'envoyer autrement ?, j'espère qu'en lisant mon message et en regardant un peu le fichier, vous comprendrez mes problèmes, et que vous pourrez m'aider.
Merci d'avance,
 

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Bonsoir à tous, bonsoir JBARBE.

Outre le fait qu'un fichier volumineux peut très souvent être dégraissé, voire même compressé, je ne pense pas qu'un lien éphémère soit une bonne idée. Nous souhaitons en effet tous qu'XLD perdure, et nous utilisons -presque ;) tous- l'outil de recherche intégré pour résoudre des problématiques similaires. Quoi de plus frustrant alors que de tomber sur un lien mort (CJoint supprime un fichier 60 jours après sa dernière ouverture).
En illustration de mon propos, la discusssion ici.
 

CleCle.

XLDnaute Nouveau
Re : Création d'un logiciel d'aide à la sélection

Bonsoir,
Merci de vos réponses rapides.
Victor21, en réalité, je n'ai pas tout le cheptel dans mon fichier excel. Je n'ai aucune donnée réelle, même. Seulement quelques tentatives avec des bêtes "inventées". Le fichier n'est pas volumineux à cause de ça.
Je vais essayer de le compresser.

Edit ; même en le compressant, il dépasse toujours la taille maximale. Je vais donc passer par le site Accueil de Cjoint.com en attendant de trouver une meilleure solution...

Sur la première feuille (Fonctions), vous pouvez cliquer sur le point "Ajouter une brebis à l'inventaire" (le bouton de commande de gauche) pour avoir la fenêtre "VBA" qui s'affiche. Tout se passerait ensuite dans la feuille "Inventaires" qui serait la base (c'est là que commence mon premier problème, vous verrez que les "numéros de travail" sont en "texte"...).

Voilà : Ce lien n'existe plus
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Re,

Pour ceux que ça intéresse, le fichier allégé, non compressé : 68 Ko Compressé : 58 Ko
 

Pièces jointes

  • projet10.0.xlsm
    68 KB · Affichages: 51
  • projet10.0.xlsm
    68 KB · Affichages: 67
  • projet10.0.xlsm
    68 KB · Affichages: 60
  • projet10.0.zip
    59.8 KB · Affichages: 21

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Re,

Pour la partie VBA, d'autres que moi bien plus compétents seront sans aucun doute d'une aide plus fiable.
Je vous conseille cependant d'ajouter vos "numéro de travail" en bas de tableau, plutôt que de les insérer en haut de tableau, et pour chaque nouveau n°, d'insérer une ligne dans chaque tableau concerné (Analyse, et Aide à la sélection). Plus d'infos sur le site de Ce lien n'existe plus à cette page :)

Quelques corrections de formules en erreur :
- I23 de la feuille "Fonctions : =RECHERCHEV(D20;inv;16;FAUX)
- I24 de cette même feuille : =RECHERCHEV(D20;inv;17;FAUX)

Organisation de vos données :
- Dans la feuille "Données techniques" : je pense qu'il serait judicieux d'utiliser une ligne pour chaque lactation, plutôt que de les décliner en groupes de colonnes (actuellement cloonned B à I, J à Q...)
- Je n'ai pas compris le fonctionnement de l'"aide à la sélection", mais le tableau "Notes pour chaque critère aurait avantage à être en haut de feuille (pour homogénéiser les formules N° de travail), quitte à placer le tableau du dessus (servant, je pense, aux calculs) dans une autre feuille.

En espérant que ces remarques vous sseront utiles...
;)
 
Dernière édition:

CleCle.

XLDnaute Nouveau
Re : Création d'un logiciel d'aide à la sélection

Bonjour,
Je réponds rapidement :
Je me suis douté que le problème majeur résidait dans le fait que la ligne s'ajoute par le haut, et non par le bas. Je pense que cela résoudrait notre problème si, en effet, cela la rajoutait "par le bas". Nous avions cherché une méthode, mais n'avions pas trouvé, et avions finalement décidé d'essayer malgré tout selon notre première idée. Je me rends compte en avançant sur le projet que c'est ça qui pose problème pour pas mal de choses.
Savez vous comment je peux résoudre ce problème ? J'ai regardé sur le site donné, mais je ne vois pas comment faire.
Merci.
 

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Re,

... le problème majeur résidait dans le fait que la ligne s'ajoute par le haut, et non par le bas.? J'ai regardé sur le site donné, mais je ne vois pas comment faire
Peut-être avez vous regardé trop rapidement :
Code:
Pour ajouter une ligne sous la dernière ligne de la table : 
Dim LR as ListRows
Set LR = Range("data_famille[#Totals]").ListObject.ListRows.Add(AlwaysInsert:=True)
 

JBARBE

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Bonjour à tous,

Peut-être ceci !

bonne journée !
 

Pièces jointes

  • projet10.0.xlsm
    77.6 KB · Affichages: 36
  • projet10.0.xlsm
    77.6 KB · Affichages: 54
  • projet10.0.xlsm
    77.6 KB · Affichages: 50

CleCle.

XLDnaute Nouveau
Re : Création d'un logiciel d'aide à la sélection

Bonjour,

Victor 21, j'ai en effet dû rater ce petit passage. Sauriez-vous où le placer dans mon code/ que modifier ?
Vous m'aviez aussi conseillé de mettre les lactations non pas sous forme de ligne, mais sous forme de colonne. Je ne sais pas si cela serait plus ergonomique dans le sens où, si l'éleveur rentre 300 brebis, il y aura la lactation 1 et il devra descendre de 300 lignes pour avoir accès à la lactation 2...

JBARBE, ça me semble pas mal du tout !
Par contre, j'ai l'impression que des données s'ajoutent alors qu'elles ne devraient pas (sur des lignes vides) ou se copient d'une ligne à l'autre, est-ce normal ? Pourriez-vous m'expliquer comment vous avez trouvé ce code et à quoi correspondent les différents éléments ?
Malgré cela, mon autre problème persiste : il y a toujours la zone texte VBA qui persiste sous forme de texte lorsque je valide la brebis sur Excel. Plus encore, jusqu'à présent en modifiant le format de la cellule, j'arrivait manuellement à le mettre sous forme de "nombre" et maintenant, cela ne fonctionne même plus. Sauriez-vous pourquoi ? Comment régler ce problème ?

Merci pour vos réponses, vous m'êtes d'une aide immense !

Claire.
 

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Bonjour, CleCle.


Sauriez-vous où le placer dans mon code
à la place de :
Code:
Rows("3:3").Select    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'insère une nouvelle ligne

Vous m'aviez aussi conseillé de mettre les lactations non pas sous forme de ligne, mais sous forme de colonne. Je ne sais pas si cela serait plus ergonomique dans le sens où, si l'éleveur rentre 300 brebis, il y aura la lactation 1 et il devra descendre de 300 lignes pour avoir accès à la lactation 2...
Une ligne par événement (Vous disposez d' 1 048 576 lignes, ce qui permet d'entrer 10 lactations pour 104 000 brebis...) Et vous disposez toujours du filtre pour ne voir que la brebis désirée.
 

CleCle.

XLDnaute Nouveau
Re : Création d'un logiciel d'aide à la sélection

D'accord, je vais essayer à partir de ce code-ci alors, espérons que cela fonctionne.

Une ligne par événement ? C'est à dire "événement" ? Lactation ?

Pour revenir sur mon problème de "nombre en format texte", j'ai cherché depuis plusieurs jours déjà sur internet et je vois que je ne suis pas la seule à avoir ce problème. Cependant, je n'ai pas trouvé comment le résoudre. Certains disent de convertir manuellement au format "nombre" mais si je rajoute une brebis via VBA, son numéro de travail sera au format texte. Il doit bien exister un code VBA pour éviter cela ? J'en ai trouvé plusieurs qui n'ont pas fonctionné pour moi...
 

Victor21

XLDnaute Barbatruc
Re : Création d'un logiciel d'aide à la sélection

Bonjour, CleCle.

Une ligne par événement ? C'est à dire "événement" ? Lactation ?
Oui, avec éventuellement une colonne avec le n° de lactation (si nécessaire)
concernant le nombre stocké sous forme de texte ?
Avez-vous essayé :
VB:
 feuille.Range("A3").Value = .txtNumTravail.Value

Comme dit précédemment, je suis -encore- une cruche en VBA, mais regardez ce lien qui pourrait vous inspirer.
 

Discussions similaires

Réponses
3
Affichages
201
Réponses
6
Affichages
359

Statistiques des forums

Discussions
312 197
Messages
2 086 104
Membres
103 118
dernier inscrit
mlaf4032