IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Retrouver une valeur dans un tableau [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut Retrouver une valeur dans un tableau
    Bonsoir;

    J'essaie de m'apprendre à "manipuler des tableaux" grâce à des formulaires.

    Cette fois, je me mets dans la peau d'un gérant de bibliothèque.

    Je créé un tableau qui reprend divers éléments (ref du livre, nom de l emprunteur...) pour mettre à jour en temps réel les mouvements de mes bouquins.

    Le formulaire fonctionne bien apparemment , mais je cherche à résoudre un détail.


    Si Mr Durand m'emprunte un livre le Lundi et qu'il me le rend le vendredi,

    cela créé deux "entrées" dans mon tableau (une pour l'emprunt une autre

    pour le retour).

    Existe t -il une fonction en vba qui me permettrais de remplir la date de retour sur la même ligne que la date d'emprunt du même livre?


    Je joins mon fichier pour plus de clarté.

    Je ne cherche pas forcément une réponse toute cuite (mon but étant d'apprendre le vba) mais au moins un début de piste par exemple.



    Merci d'avance.

    Cordialement.

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Par défaut
    Bonsoir,

    Il me semble que c'est plus une question d'organisation des donnees que de code à proprement parler.

    Grosso modo, une table pour les emprunteurs(nom, adresse,etc), une autre pour les livres (reference, titre, auteur(s)), et une troisieme pour les entrees/sorties qui fait le lien entre les deux autres. Cela dit Access semble tout désigné pour ce type d'application.

    Pour ce qui est des recherches dans les tables tu peux utiliser Find et/ou le filtre automatique, voire même RechercheV, tout dépend de l'approche choisie au départ.

    Bon courage,

    Tirex28/

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Autodidacte, Tirex, le Forum,

    Pour un départ d'idée, Audidacte, regardes ce fichier joint

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonjour le forum,


    Merci beaucoup pour ta réponse qui me convient très bien Casefayere !!!

    Je me penche dessus, et reviens vers toi (vous)dès que je coince.

    Dès que j'aurais bien cerné le truc , je cliquerais sur résolu.

    Encore merci (et Tyrex également).

    BOnne journée.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonjour le forum

    Bon malgrés la très bonne piste qui m'a été donné, je n'arrive pas à adapter le code à mon projet.

    La question que je me pose :

    Est il possible dans mon fiichier, de trouver un véhicule qui a une date d'entrée pour ajouter sur la même ligne la date de sortie?

    Le critére de recherche étant l immat

    Mes bricolages n'ont rien donné.

    Apparemment on utilise Find mais je n'arrive pas à trouver le bon chemin.

    Merci beaucoup pour vos futurs éclairages.

    Cordialement.

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Autodidacte, le forum,

    Ton projet n'est plus le meme, et si on y allait doucement

    Serais-tu d'accord dans une première étape, de mettre un combobox pour l'immatriculation (voir fichier joint), ensuite on continue
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Merci beaucoup pour ton aide encore une fois.

    je suis tout à fait ok, pour y aller doucement !!!!!


    Je regarde pour la combobox.

    Merci Casefayere , super d'avoir des gens qui aident bénévolement!!!!!!! (j'espère aider les autres un jour moi aussi ).

    Je reviens vers toi dès que je pense avoir compris. J'ai vraiment envie d'apprendre le vba!!

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Re Casefayere, le forum;

    Effectivement une combobox me parait tout à fait convenir.

    Seul éventuel soucis, si mon tableau admet 150 immats par exemple, retrouver l'immat dans une combobox ne serait-il pas trop fastidieux ?


    Merci d'avance.

    Cordialement.

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Seul éventuel soucis, si mon tableau admet 150 immats par exemple, retrouver l'immat dans une combobox ne serait-il pas trop fastidieux ?
    non, à la saisie, on s'arrangera pour que la combo propose en fonction de l'enregistrement partiel.

    Pour la recherche de l'imma, aucun problème

    Je te propose meme autre chose, une listbox pour le modele,

    Je joins une autre proposition, il suffira d'ajouter dans la feuille modele, toutes le marques que tu veux.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Super Casefayere, effectivement une listbox pour la marque est une très bonne idée.

    Puis-je selon toi (vous), faire une listbox avec les différentes marques,puis selon la marque séléctionnée , afficher une seconde listbox avec les modeles.

    On s'éloigne du sujet de base mais c est une idée vraient intéréssante, elle evite de re-saisir à chaque fois.

  11. #11
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    oui, tu peux le faire, ceci peut etre vu après

    J'ai adapté, pour l'instant ton code :
    quand tu cliques sur "renault" seules les immat de renault apparaissent dans le combobox

    (pour l'instant, il n'y a pas d'autres modèles) mais si tu mets d'autres marques, tu pourras vérifier
    voir fichier joint
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Que dire .... Tu es super !!!!!!!!!

    Je prends le fichier et j essaie de bosser dessus pour faire avancer les choses.


    Je vais me decarcasser un peu , histoire de voir au moins si je comprends tout ce que contient le code.

    Le but étant de pouvoir réaliser tout ça une fois tout seul face à ma noobitude sans Casefayere à mes cotés.

    Casefayere président

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonjour le forum , Casefayere.

    Bon je n'arrive tjs pas à ajouter une date de sortie sur la ligne où il figure une date d'entrée.

    Je suis désésperant .

    Par contre j ai remis les marques qui m'interessent et c est une super idée cette listobx.

    J'ai tenté de m inspirer du fichier "bibliothèque" ci dessus mais rien n'y fait.

    Comment pourrais je faire pour :

    Si le véhicule a déjà une entrée on rajoute la dte de sortie sur la même ligne sinon, on créé une nouvelle ligne.

    Je tente de créer en paralléle une seconde listboxbox (modele de voiture) qui sera différente en fonction de la premiere listbox séléctionnée (marque).
    Je vais y arriver !!

  14. #14
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour auto, le forum,

    C'est dommage, j'ai préparé de quoi te satisfaire chez moi (et là je n'y suis pas), en fonction du numero d'immat, les box se mettent à jour si dte_sortie est cochée, il ne suffit plus, avec un find de mettre la date de sortie du la bonne ligne, je ne sais pas si j'aurai le temps de recommencer ce matin, je vais essayer mais pas garantie.

    a +
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  15. #15
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    re,

    vite fait sur le gaz, essaies et analyses ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Der_ligne As Integer, Ch As Range
        If dte_entree = False And dte_sortie = False And dte_vo = False Then
        MsgBox "choisir d'abord un mouvement"
          End If
            Der_ligne = Range("A65536").End(xlUp).Row + 1
         If dte_sortie = True Then
        Set Ch = Sheets("base").Range("b2:b" & Der_ligne - 1).Find(immat)
        If Not Ch Is Nothing Then
        Sheets("base").Range("e" & Ch.Row) = mouvement
        End If
        End If
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Re Casefayere et merci pour continuer à me suivre dans ma démarche !

    Je commente le code voir si je suis à peu près ok.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Der_ligne As Integer, Ch As Range
    On initialise les variables Der_ligne et Ch . Der_ligne comme un entier, et Ch comme étant une plage de cellules .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If dte_entree = False And dte_sortie = False And dte_vo = False Then
        MsgBox "choisir d'abord un mouvement"
          End If
    Si ni entrée, ni sortie , ni Vo ne sont sélectionnées alors on demande à l'utilisateur de faire un choix.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If dte_sortie = True Then
        Set Ch = Sheets("base").Range("b2:b" & Der_ligne - 1).Find(immat)
    Si l'utilisateur a selectionné date de sortie alors le programme cherche dans la feuille base et colonne B si il retrouve la même immat entrée par l utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If Not Ch Is Nothing Then
        Sheets("base").Range("e" & Ch.Row) = mouvement
    (Ce dernier me pose un problème )

    Si le programme n'a pas trouvé de correspondance d'immat, alors il ajoute la saisie sur une nouvelle ligne dans la colonne "e".


    Je sais pas si je traduis bien mais je trouve que c 'est un très bon exercice en tt cas.


    J ai tenté d intégrer le code à mon fichier sans succés pour le moment.

    J'y travaille

  17. #17
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir Auto,

    Normalement, ce code suffit, si le numero d'immat correct et existant a été saisi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     If dte_sortie = True Then
            Set ch = .Range("a2:g" & Der_ligne - 1).Columns(2).Find(immat)
            ch.Offset(0, 4) = CDate(mouvement): Exit Sub
            End If
    mais regardes le fichier joint à améliorer, qui remplit les box a ta place si le véhicule est enregistré, ce fichier doit etre corrigé par la suite

    a+
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonsoir le forum; Casefayere;


    Juste une info si possible; dois-je conserver mon code de départ?

    J'ai l'impression que ""mon"" code de base ne sert plus à rien ou pire qu'il fait planter le programme.

    Avec le dernier fichier joint le formulaire fonctionne t-il chez toi?
    Je n'arrive plus à le faire fonctionner. j'ai l'impression de m'enfoncer.

    Désolé d'être aussi lourd !!!!

  19. #19
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir Autodidacte,

    J'ai failli me coucher mais je viens de voir ta réponse.

    Comme je ne suis plus en forme, je pense que mon dernier fichier joint suffit mais on l'améliorera ensemble

    Au fait ! non tu n'es pas lourd,

    a demain peut-être
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut


    Ok , eh bien bonne nuit Casefayere .!!!!

    Bravo(pour ce boulot incroyable que vous faite) et merci !!!

    (juste un peu HS) , tu es autodidacte ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [Tableaux] retrouver une valeur dans un tableau
    Par tininou dans le forum Langage
    Réponses: 3
    Dernier message: 26/01/2007, 23h04
  2. Chercher une valeur dans un tableau
    Par christel1982 dans le forum ASP
    Réponses: 5
    Dernier message: 14/09/2006, 10h01
  3. Rechercher une valeur dans un tableau
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 29/06/2006, 15h23
  4. Retrouver une valeur dans un champ en VBA
    Par friiitz dans le forum Access
    Réponses: 6
    Dernier message: 11/05/2006, 16h02
  5. Réponses: 21
    Dernier message: 28/02/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo