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 :

débutante cherche aide, document de recherche VBA


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut débutante cherche aide, document de recherche VBA
    Bonjour à tous
    J'ai bien avancé sur mon projet de classement de médicament. A savoir que la base de donnée n'est pas encore finie, il y a pas mal de colonnes vides.
    J'ai quelques questions ciblées:
    1) j'aimerai mettre l'accès à mes formulaires sur une feuille de mon classeur "vierge" pour qu'il soit plus repérable, et que celui-ci ouvre un formulaire de différents choix. Dans le fichier joint, c'est l'userform 3 qui regroupe tous mes autres accès aux différents formulaires. Il fonctionne en partant de développeur, mais je n'arrive pas a lui créer le lien direct avec le bouton "afficher formulaire" qui se trouve sur la feuille recherche. J'ai un message d'erreur surement basique... Une fois fonctionnel, je pourrai enlever les deux boutons d'accès qui se trouve sur ma feuille "base".

    2) J'aimerais avoir que "mes médicaments injectables" quand je suis dans le formulaire "injectable" et que "mes médicaments per os" quand je suis dans le formulaire per os... J'ai mit des oui dans les colonnes I, J, K pour pouvoir les trier. Est-il possible de mettre une condition "si oui dans colonne I, alors montrer les noms de la colonne "A"??? Si c'est trop compliqué, je ferrai plusieurs feuilles en séparant les injectable, les per os, les réa...

    Voilà, j'espère que vous aller pouvoir continuer à m'aider. Grâce à vous, j'ai déjà pas mal avancé et je vous en remercie, vous êtes top!

    Nat

    vba_medic_V2.xlsm

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    En attaché un début de solution qui devrait vous donner quelques idées, n'utilisant que les données de la table T_base et une table intermédiaire T_dci reprenant la liste filtrée des DCI, liste ensuite triée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Option Explicit
     
    Sub NewDCI(kField As Long, sCriteria As String)
        '--- vide la table T_dci
        With Worksheets("Tmp").ListObjects("T_dci")
            If Not .DataBodyRange Is Nothing Then
                .DataBodyRange.Delete
            End If
        End With
        '--- filtre la table T_base
        Worksheets("base").ListObjects("T_base").Range.AutoFilter
        Worksheets("base").ListObjects("T_base").Range.AutoFilter Field:=kField, Criteria1:=sCriteria
        '--- copie les données filtrées dans la table T_dci vidée
        Range("T_base[DCI]").SpecialCells(xlCellTypeVisible).Copy Sheets("Tmp").Range("A2")
        '--- trie les données de la table T_dci
        With ActiveWorkbook.Worksheets("Tmp").ListObjects("T_dci").Sort
            .SortFields.Clear
            .SortFields.Add2 Key:=Range("A:A"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub
    Cette table T_dci est utilisée pour alimenter la combobox du formulaire ouvert.

    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Merci
    Bonjour Eric, merci pour le travail fourni. Malheureusement, je suis trop débutante pour comprendre le fonctionnement de votre code et je ne saurai pas le reproduire sur la totalité de mon projet. Je vais donc rester sur la simplicité et séparer mon tableau en plusieurs feuilles comme je l'avais imaginé au départ, je pense pouvoir avoir les bases pour cela . Par contre, votre code pour partir de la feuille recherche avec le bouton Afficher le formulaire, qui ouvre le userform avec tous mes liens m'intéresse mais ne fonctionne pas. Pouvez-vous me le renvoyer sans autre modification du document en pièce jointe, comme ça, je pourrai comprendre les modifications faites (j'espère)
    Merci beaucoup
    Nat

    vba_medic_V2.xlsm

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Voilà, seulement un changement au niveau du bouton "Afficher le formulaire".

    Une remarque: les variables qui sont prévues pour représenter un n° de ligne ou un n° de colonne doivent être du type Long (et pas Integer).

    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 359
    Points : 640
    Points
    640
    Par défaut
    Bonjour Nattalia
    En pièces jointe un petit exemple avec les codes de Laurent Ott qui peuvent te permettre à l'aide de requêtes SQL de pouvoir faire des tri et des recherches sur les tableaux structurés.
    Tu vas dire que le code est trop compliqué pour ton niveau mais en fait comme quand tu fais une recherche sur la toile, nul besoin de savoir ce qui se passe en arrière plan. Tu dois juste savoir comment lancer la recherche, hé bien là c'est pareil.
    Tu as d'abord les codes des boutons de l'UserForm3.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        With Me
            .Hide
            basCurrent.RunSql "UserForm4"
            UserForm4.Show
            .Show
        End With
    Dans ce code on fait:
    • On Cache l'UserForm3
    • On lance la requête associée à l'UserForm Sélectionné
    • On Affiche l'UserForm
    • Une fois l'UserForm sélectionné fermé on réaffiche l'UserForm3


    Maintenant la Sub RunSQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub RunSql(ByVal usfName As String)
        Dim Tableau As Range
        Set Tableau = Range("t_Source")
        Dim TsTemporaire As Range
        Dim Enr As Variant
    Si l'on décortique cela donne
    • On teste si la feuille DatasTemp existe sin on l'a crée
    • On supprime l'éventuel tableau de recherche qui a pu être créé
    • On recré un tableau avec les colonnes DCI, injectable, per os, et rea
    • Selon l'UserForm chargée on adapte la requête SQL
    • On charge le tableau temporaire avec le résultat


    Maintenant si l'on regarde de plus prés la fonction (RequeteSQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Enr = basXlTools.TS_RequeteSQL(Tableau, "[DCI], [per os]", "WHERE [per os] LIKE 'oui' ORDER BY [DCI]")
    Nous indiquons le tableau,
    Ensuite le premier groupe contenant le noms des colonnes retournées, je n'ai mis que les colonne "DCI" celle qui nous servira à remplir les ComboBox et celle pour le critère de recherche.
    Puis le second qui représente la recherche ici avec un like sur les colonnes "per os", "injectables" ou "rea"

    Voilà c'et un code minimaliste
    N'hésites pas à poser des questions.

    Tu trouveras toutes les explications sur les fonctions de Laurent Ott SUR CETTE PAGE

    Pièce jointe 615294
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut
    Bonjour à tous
    Je reviens vers vous avec deux soucis sur mon projet de bibliothèque de médicament.

    1) Après avoir réglé mon problème d'ouverture de mon UF"interface" que j'ai finalement mis en ouverture automatique lors de l'ouverture du ficher, mes recherches ne fonctionnent que si je suis sur la feuille correspondant à ma recherche.
    Par exemple: si j'ouvre mon fichier excel et que la feuille est sous "injectable", ma recherche est juste avec mon UF injectable, mais si je fais un recherche "peros" avec mon bouton "per os", tout est faux. Je ne sais pas si je suis très claire???? Si vous testé, le plus simple, c'est d'aller sur l'onglet "rea", bouton"rea", si vous chercher adrénaline, tout va bien, puis si vous sortez et que vous allez sur le bouton"autre" et que vous chercher "dospir", vous allez trouvez "atropine", ce qui est totalement faux, mais juste si vous chercher "dospir" avec l'onglet"autre" et le bouton"autre".
    Voyez-vous d'où cela peux venir?

    2) mon autre problème est peut-être plus compliqué. Lorsque je rentre le nom d'un médicament, le formulaire commence à se remplir dès les premières lettres du mot recherché, et si le mot (ici, le nom de médicament) n'est pas dans la liste, il garde rempli les textbox avec les dernières informations trouvées, ce qui peut-être source d'erreur et donc dangereux dans ma profession. Je dois absolument avoir un message d'erreur si le médicament cherché n'est pas dans la liste. mais comme mes txtbox se remplissent automatiquement, je n'arrive pas à mettre de MsgBox.
    Il y a t'y une solution pour faire une recherche en tapant le nom du médicament en entier dans la combobox puis de faire "enter" ou utiliser un "bouton rechercher"? Et bien sûr, le plus simplement possible (je suis toujours débutante).

    Merci beaucoup

    Nat

    je n'arrive pas a télécharger la pièce jointe...pourquoi ???

  7. #7
    Membre confirmé Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 359
    Points : 640
    Points
    640
    Par défaut
    Salut Nat,
    je n'arrive pas a télécharger la pièce jointe...pourquoi ???
    est-ce le mien que tu n'arrive pas à télécharger ? Ou bien c'est toi qui n'arrive pas à poster un fichier ?
    Testes le, et fait un retour sur ce que je te propose.
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en Vous avez aimé la discussion alors un fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut taille
    Bonjour
    Non, c'est le mien que je n'arrive pas a télécharger dans les pièces jointes.
    En fait, c'est une question de taille de fichier.
    Je ne comprend pas pourquoi car j'ai peu de contenu et peu de codes et je passe de ma version 2 de 97.2ko à ma version 4 à 39.1Mo
    Je viens de la refaire sur un fichier vierge pour voir si il n'y avait pas eu un bug avec mon fichier, et j'obtiens la même taille.
    Je n'arrive même pas à l'envoyer par mail.
    Avez-vous une idée ?
    Merci
    Nat

  9. #9
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Hello,
    Citation Envoyé par nattalia Voir le message
    Bonjour
    Non, c'est le mien que je n'arrive pas a télécharger dans les pièces jointes.
    En fait, c'est une question de taille de fichier.
    Je ne comprend pas pourquoi car j'ai peu de contenu et peu de codes et je passe de ma version 2 de 97.2ko à ma version 4 à 39.1Mo
    Je viens de la refaire sur un fichier vierge pour voir si il n'y avait pas eu un bug avec mon fichier, et j'obtiens la même taille.
    Je n'arrive même pas à l'envoyer par mail.
    Avez-vous une idée ?
    Merci
    Nat
    c'est louche ! as-tu rajouté des images ?
    si c'est un fichier xlsm et que tu as le logiciel 7zip, essaie d'ouvrir le fichier xlsm avec 7zip et regarder dans les fichiers qui sont dans le fichier xlsm ce qui prend de la place.
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  10. #10
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 661
    Points : 5 785
    Points
    5 785
    Par défaut
    Citation Envoyé par nattalia Voir le message
    Bonjour
    Non, c'est le mien que je n'arrive pas a télécharger dans les pièces jointes.
    En fait, c'est une question de taille de fichier.
    Je ne comprend pas pourquoi car j'ai peu de contenu et peu de codes et je passe de ma version 2 de 97.2ko à ma version 4 à 39.1Mo
    Je viens de la refaire sur un fichier vierge pour voir si il n'y avait pas eu un bug avec mon fichier, et j'obtiens la même taille.
    Je n'arrive même pas à l'envoyer par mail.
    Avez-vous une idée ?
    Merci
    Nat
    Bonjour,

    Parfois Excel bug et interprète les cellules vide comme étant remplie (de rien) et ce jusqu'à la dernière ligne du classeur (donc sur un million de ligne) ce que alourdi nettement le classeur.
    Pour y remédier tu peux supprimer toutes les lignes vides du bas de la feuille jusqu'à tes données puis sauvegarder.
    J'aimerais bien aller vivre en Théorie, car en Théorie tout se passe bien.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Bugg solutionné
    Re
    J'ai refait, point par point, mon document, il est plus ou moins comme il était avant mon gros bugg.

    Voici mes soucis.

    1) Depuis la récupération du doc, et c'est peut-être le bug qui a fait tout s'écrouler, sur l'UF2 "injectable", mon curseur se met dans le txtbox "remarque" et pas dans la combobox.

    2) le remplissage se fait dès les premières lettres renseignées ce qui est source d'erreur si le médicament n'est pas trouvé. J'aimerai pouvoir avoir un message d'erreur si le médicament n'est pas trouvé, ce qui va peut-être tout changer en faisant un bouton recherche et en notant le nom complet de la recherche.

    3) l'userform "interface" fonctionne que si la feuille est à l'écran (ex, si j'ouvre l'userform1 sur la feuille peros, cela fonctionne, mais si j'ouvre l'userform2 (injectable) sur la feuille peros, le code cherche sur la feuille peros et non la feuille injectable.

    Voilà, retour au codage, en espérant que cela reste très simple. Mon fichier doit pouvoir s'agrandir aussi bien au niveau du nombre de ligne dans mes feuilles existantes, que dans des userform complémentaires qui se feront sur d'autres feuilles (styles protocole plus détaillé sur certains médicaments). je dois donc être capable de reproduire les codes simplement (débutante oblige)

    Désolée Mr Valtrasse, votre fichier précédent fonctionnait très bien, mais je ne pouvais pas l'agrandir de manière autonome par manque de connaissance

    Merci à tous

    Nat

    pharmacie_vide.xlsm

  12. #12
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Pour ton premier problème, cela provient de la propriété TabIndex de la ComboBox qui est à 6. Celle du contrôle Remarque est à 1. La propriété TabIndex indique l'ordre de sélection des champs (quand on utilise la touche Tab par exemple). Il faut donc mettre la propriété TabIndex de la ComboBox à 1


    Pour le deuxième problème, cela provient certainement du fait que tu n'as indiqué la feuille du range dans les instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derling = Range("A1").End(xlDown).Row
    Par exemple mettre pour la UserForm1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derling = Worksheets("peros").Range("A1").End(xlDown).Row
    Pour le troisième problème, je n'ai peut-être pas très bien compris mais tu peux afficher "Pas trouvé !" dans le champ Autre Nom si rien n'est trouvé.
    Code correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If Not c Is Nothing Then
    ligne_nom = c.Row
    TextBox3.Value = Range("B" & c.Row)
    TextBox4.Value = Range("C" & c.Row)
    TextBox5.Value = Range("D" & c.Row)
    TextBox6.Value = Range("E" & c.Row)
    Else
    TextBox3.Value = "Pas trouvé !"
    End If
    Et puis j'ai remarqué une chose, c'est que pendant le remplissage initial des ComboBoxs, on passe dans la procédure ComboBoxN_Change à chaque élément inséré ce qui fait des recherches pour rien. Voici ce que je te propose :
    On désactive les comboboxs pendant leur remplissage comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub UserForm_Initialize()
    dernLigne = Sheets("peros").Range("A" & Rows.Count).End(xlUp).Row
    UserForm1.ComboBox1.Enabled = False
    Dim i As Integer
    For i = 2 To dernLigne
    ComboBox1 = Sheets("peros").Range("A" & i)
    If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Sheets("peros").Range("A" & i)
    Next i
    ComboBox1.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    UserForm1.ComboBox1.Enabled = True
    End Sub
    Et on sort des procédures ComboBoxN_Change si la ComboxBox n'est pas activée. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ComboBox1_Change()
    Dim derling As Integer
    Dim mavar As String
    Dim ligne_nom As Integer
    If Not ComboBox1.Enabled Then Exit Sub
    derling = Worksheets("peros").Range("A1").End(xlDown).Row
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  13. #13
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Re
    Bonjour
    Merci pour votre aide.
    Cela a solutionné message d'erreur "non trouvé", c'est parfait. Et bien sûr, mon problème de Tabindex (tellement simple quand on le sait)
    La seule qui ne fonctionne pas, c'est la possibilité de faire des recherche sur toutes mes feuilles en partant de mon interface, quelques soit la feuille duquel il est ouvert.


    derling = Worksheets("peros").Range("A1").End(xlDown).Row ne fonctionne pas

    J'ai sans doute fait une erreur ou un oubli, pouvez-vous regarder?

    Merci beaucoup

    Nat
    Fichiers attachés Fichiers attachés

  14. #14
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    Citation Envoyé par nattalia Voir le message
    La seule qui ne fonctionne pas, c'est la possibilité de faire des recherche sur toutes mes feuilles en partant de mon interface, quelques soit la feuille duquel il est ouvert.
    J'ai trouvé d'où venait le problème :
    Tu n'as pas mis la Feuille à utiliser devant les Range des instructions du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Value = Range("B" & c.Row)
    Tu peux aussi simplifier ton code en utilisant une variable qui représente la feuille à utiliser . Voici un exemple (la variable est ws) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Private Sub ComboBox1_Change()
    Dim derling As Integer
    Dim mavar As String
    Dim ligne_nom As Integer
    Dim ws As Worksheet
    Set ws = Worksheets("rea")
     
    If Not ComboBox1.Enabled Then Exit Sub
    derling = ws.Range("A1").End(xlDown).Row
    With ws.Range("A2:A" & derling)
    mavar = ComboBox1.Value
    Set c = .Find(mavar, LookIn:=xlValues, LookAt:=xlWhole)
     
    If Not c Is Nothing Then
    ligne_nom = c.Row
    TextBox1.Value = ws.Range("B" & c.Row)
    TextBox2.Value = ws.Range("D" & c.Row)
    TextBox3.Value = ws.Range("E" & c.Row)
    TextBox4.Value = ws.Range("F" & c.Row)
    TextBox5.Value = ws.Range("G" & c.Row)
    TextBox6.Value = ws.Range("C" & c.Row)
     
    Else
    TextBox1.Value = "Médicament non trouvé!"
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    TextBox5.Value = ""
    TextBox6.Value = ""
    End If
    End With
    End Sub
    Comme cela il n' y a que la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set ws = Worksheets("rea")
    à changer entre les procédures des différents formulaires.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  15. #15
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut merci
    Bonjour à tous,
    Un grand merci à ceux qui m'ont aidé sur mon projet. Tout fonctionne parfaitement bien, je suis ravie du résultat. Vous êtes des anges.... et des génies!
    Tout le service de réanimation de l'hôpital de la Tour à Genève vous remercie.
    Nat

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut cherche code pour accents
    Bonjour
    Je cherche a faire une amélioration a mon document excel VBA pharmacie.
    J'aimerais pouvoir faire ma recherche de médicament via le combobox sans prendre en compte les accents. Si je cherche "déroxat" ou "deroxat", que ça marche pareil.
    J'ai essayé certains codes cherché sur internet, mais aucun ne fonctionnent.

    Voir la pièce jointe.

    Merci pour votre aide.

    Nat

    pharmacie_V7.xlsm

  17. #17
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,

    Pas de solution simple pour cela. Une solution partielle, ajouter une instruction .DropDown en fin de routine Combobox_Change().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub ComboBox1_Change()
    '... 
    ComboBox1.DropDown
    End Sub
    Cela permettra à celui qui encode de voir les noms approchant celui demandé, et ainsi de voir si un accent est nécessaire ou non. Il est encore possible d'allonger le nombre de noms affichés dans la liste, qui est par défaut de 8 (propriété ListRows).

    Cordialement.

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2013
    Messages : 48
    Points : 25
    Points
    25
    Par défaut Pas fonctionnel
    Bonjour, merci, la solution fonctionne mais n'est pas très fonctionnelle. Si vous avez une autre idée, je suis preneuse, sinon, je vais laisser comme ça.
    A bientôt

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

Discussions similaires

  1. [Débutant] Débutant cherche aide pour traiter ses données
    Par glmeilleur dans le forum MATLAB
    Réponses: 24
    Dernier message: 17/03/2010, 11h51
  2. débutant cherche aide
    Par juzii dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 13/09/2008, 15h18
  3. débutant cherche aide : sql
    Par dz_robotix dans le forum Langage SQL
    Réponses: 3
    Dernier message: 28/09/2007, 13h32
  4. [SQL] Débutant cherche aide ou tutoriel
    Par bernardgiraud dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/07/2007, 11h05
  5. Débutant cherche aide
    Par rudhf dans le forum C++
    Réponses: 5
    Dernier message: 14/03/2007, 12h00

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