|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
Etant débutant en programmation et ayant repris sur un BTS IG en alternance option dev après un début caothique de ma vie proféssionnelle, je vous demande à l'aide. Voila, maintenant que ma présentation est faite je vous explique mon problème !! Pour être plus clair : Notre prof de programmation en VBA nous a demandée un algorithme permettant de faire la saisie de 99 départements avec une recherche par numéro département ou nom département. - L'utilisateur devra saisir les 99 départements lui même. La syntaxe des saisie devra être numéro_département suivi d'un espace et du nom_département. - Les données devront être stockées dans un tableau. - une recherche par numéro ou nom département devra être possible. Ci-dessous le début de mon code : (on se moque pas ^^) Code :
Cordialement, |
||
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Bonjour normalement le forum ne répond pas au devoir de classe mais comme tu as déjà fait l'effort de proposer une réponse je vais répondre à la question : Comment récupérer le libellé ?
La commande à utiliser est Mid(). Note que dans ta solution tu enregistres le numéro de département ... mais où vas-tu mettre le nom du département ? Bon succès dans tes études. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonsoir,
J'ai réussi à prendre l'autre partie avec nomdep = Mid(saisie, 4, 20) Maintenant se pause la grande question des conditions et je ne sais pas si mon mid va m'aider pour çà ... Code :
Code :
Merci de m'avoir répondu ! |
||||
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Bon évidement j'ai toutes les réponses :-) ... mais comme je l'ai dit précédement, il est meilleur que tu fasses ton apprentissage par toi-même.
Déjà tu a un problème ici numdep <> 2. Tu compares une chaines de caractères d'au plus 2 caractères (à cause de Left()) avec le chiffre 2. Donc cela ne devrait marché que si ton utilisateur a tapé "2" et rien d'autre. Pour pouvoir avancer autrement qu'au hazard, il serait préférable que tu lises au moins une fois la liste des fonctions de VBA. Concentres toi sur celles qui manipulent les chaînes car c'est celle dont tu vas avoir besoin dans l'immédiat. Ce que tu veux vérifier finalement c'est que le code du département soit supérieur ou égale à 00 et que le code du département soit inférieur ou égale à 99 (et n'oublie pas que ce sont des chaînes de caractères). Si ces condition ne sont pas remplies, probablement que l'utilisateur s'est trompé et qu'il n'a pas respecter ton format. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mai 2010 Messages : 36 ![]() |
Bonjour
Petite contribution au problème posé : attention aux numéros de département d'outre-mer ils ont 3 chiffres. Bon travail. |
|
|
00
|
|
|
#6 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Merci Norson et dans cas le test sur 00 à 99 ne marche pas.
Donc il conviendrait aussi de vérifier que 3ième caractères est bien un espace. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#7 | ||
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Bonjour,
Une solution avec un type défini et la fonction Split Code :
|
||
|
|
00
|
|
|
#8 | ||||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
Merci Helas, mais hélas ^^ je n'attendais pas une réponse toute faite. Je suis plus d'avis avec marot_r "un apprentissage par moi même". J'ai bien pris note de tout vos commentaires à tous et vous en remercie. J'ai donc utilisé le split pour séparer les 2 champs (en plus simple que Helas certe mais je ne veux pas me compliquer plus la tâche pour l'instant et m'embrouiller). Code :
Code :
|
||||
|
|
00
|
|
|
#9 | ||||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Bon j'ai craqué voici une solution :o) mais tu l'avait presque.
Code :
Tu peux très bien imbriquer des boucles dans des boucles. Par exemple ici on va avoir un For ... Next compteur et à l'intérieur un do ... until Exemple de boucles imbriquées Code :
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Bonjour,
il me semble que nomdep = Split(saisie, " ")(1) ne retourne que la première partie du nom de département qu'en est-il de la saisie 21 Cote d'or ou 94 Val de Marne ? |
|
|
00
|
|
|
#11 | ||||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
En effet Hellas, pour les noms de département à plusieurs champs. J'ai été obligé de m'inspirer de ton code. Maintenant j'ai cela : Code :
Exemple, si je tape un numdep <> 2, le for compteur continue sa boucle sans pauser de question sur la quantité des caractères de mon numéro département. Pour information, j'ai essayé comme ça mais sans succès : Code :
|
||||
|
|
00
|
|
|
#12 | ||
|
Membre Expert
![]() Inscription : août 2006 Messages : 1 435 ![]() |
Bonsoir,
Plus simplement Code :
|
||
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
Pourriez vous me dire pourquoi mon code n'arrive pas à terminer sa boucle principale FOR. Lorsque je l'exécute il me dit next sans for et souligne le dernier NEXT. Code :
Merci, |
||
|
|
00
|
|
|
#14 | ||
|
Membre Expert
![]() Pierre ANTOINEInscription : février 2008 Messages : 650 ![]() |
Bonjour
Vous ne terminez pas votre select, donc, il prend la dernière instruction de fermeture, même si ce n'est pas la bonne, en l'occurence un "next". Mais de ce coup, il reste un "for" sans "next". Code :
Pierre PS : je vous conseille la lecture du tutoriel Initiation au VBA Office (pas facile à trouver puisqu'il est dans les tutoriel de Word, mais valable aussi pour le VBA Acess, pour la plupart des informations. |
||
|
|
00
|
|
|
#15 | ||||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
Je n'arrive toujours pas à faire fonctionner mon code : Voici les modifications apportées : Code :
Je pense que le problème est le numdep = s(0) de ma boucle DO qui garde l'ancienne donnée de la première saisie. Code :
Merci d'avance, |
||||
|
|
00
|
|
|
#16 | ||
|
Invité de passage
![]() Inscription : mars 2009 Messages : 27 ![]() |
Bonjour,
Voici mon algo pour saisir les numéros et noms des départements Français Code :
J'aimerais savoir si je peux exploiter mon SPLIT pour faire ma condition? ou si je dois créer un autre tableau ? J'ai fait plusieurs recherches concernant les tableaux en VBA access et les résultats sont maigres.. Auriez vous des ressources qui peuvent m'intéresser? En vous remerciant par avance, |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com