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 :

Recherche de la ligne de donnée dans userform [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Par défaut Recherche de la ligne de donnée dans userform
    Bonjour à tous
    J'ai un problème avec un code que je retourne dans tout les sens pour savoir pourquoi il ne fonctionne pas, sans succès. je suis toujours assez débutante.
    Est-ce que l'un de vous, avec un œil neuf aurait l'occasion de m'aider à trouver l'erreur?
    J'ai un fichier (pas fini du tout), avec deux feuille. L'une appelée "complet" avec tout un tas de colonne contenant toutes mes saisies récoltées sur mes deux userform (SaisieId et Saisieprescription) et une feuille nommé "Accueil" qui contient un tableau1 qui récupère les données de seulement quelques colonnes de la feuille complet et qui servira, à terme de raccourci (en cliquant sur la ligne voulue, ça ouvrira un userform "Ensemble" pour accéder aux données et de pouvoir modifier ou ajouter des informations , ceci est en stand by pour le moment à cause de l'erreur que je ne trouve pas).
    Lors de l'ouverture de l'userform SaisieId, tout va bien, je saisis chaque information, je clique sur enregistrer, je réponds oui au message "voulez-vous enregistrer une prescription?", je remplis les informations du formulaire SaisiePrescription.
    Lorsque j'enregistre, j'ai d'abord, "Données enregistrée avec succès!" qui me confirme que mes données ont bien été enregistrée dans ma feuille complet, puis un message d'erreur "Numéro non trouvée dans le tableau de la feuille Accueil", le msgbox que j'ai dans mon code si le num patient n'est pas trouvé.
    Les donnée sont donc bien saisie dans la feuille complet, mais dans le tableau1, il manque les informations de saisieprescription.
    Dans la feuille complet, le numéro patient en colonne D, dans le tableau1 de la feuille accueil, le numéro patient est dans la colonne C. Je veux laisser actif la fonction de recherche par numéro, car je me resservirai de ce formulaire pour faire les modifications en passant par l'userform Ensemble que je travaillerai dans un deuxième temps
    Si vous avez le temps de jeter un œil, ça serait super gentil. J'image que c'est le nom d'une colonne qui est mal définie ou une bêtise comme ça, mais je ne trouve pas.
    Merci beaucoup
    Nat
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour,
    Dans ta macro AjouterAuTableauAccueil, dans la partie de code ci-dessous, tu ne fais pas référence aux bonnes colonnes. Comme tu utilises un tableau structuré, la colonne 3 qui est censée se référer à la colonne "Id Patient" de ton tableau, est en fait la colonne 2 du tableau, et ce quelle que soit la position de "Tableau 1" dans la feuille. Tu dois donc modifier toutes tes colonnes dans le code de tes lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            If loRow.Range.Cells(1, 3).Value = numero Then ' Correspondance avec txtnumero dans la colonne C
                With loRow.Range
                    .Cells(1, 9).Value = indication ' Colonne I
                    .Cells(1, 10).Value = complement ' Colonne J
                    .Cells(1, 11).Value = medecin ' Colonne K
                    .Cells(1, 12).Value = table ' Colonne L
                    .Cells(1, 13).Value = fin ' Colonne M
                End With
                found = True
                Exit For
            End If

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 508
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 508
    Par défaut
    Salut,

    Avec les tableaux structurés, on peut référencer les cellules via le nom de colonne.
    C'est un peut plus complexe à écrire, mais tellement plus versatile.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim Lo As Excel.ListObject
    Set lo = wsAccueil.ListObjects("Tableau1")
     
    Dim Lr As Excel.ListRow
    For Each Lr in Lo.ListRows
        Lr.range.Cells(Lo.ListColumns("Indication").Index).Value = indication
        Lr.Range.Cells(Lo.ListColumns("Complément").Index).Value = complement
        '// ect ...
    Next

  4. #4
    Membre confirmé
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Par défaut un grand merci
    je ne connaissait pas du tout la problématique du tableau structuré, j'aurais pu chercher encore longtemps. merci 1000 x
    Nathalie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/11/2018, 11h22
  2. Récupérer les données de la ligne double Cliquée dans Userform
    Par yoker dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/02/2015, 01h21
  3. [XL-2007] recherche d'une ligne de texte dans un fichier txt
    Par cagelion dans le forum Excel
    Réponses: 5
    Dernier message: 25/09/2010, 19h42
  4. recherche debut de ligne dans fichier texte en vba
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/07/2008, 17h27
  5. Réponses: 8
    Dernier message: 27/02/2008, 19h20

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