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

  1. #1
    Candidat au Club
    changer de cellule + insérer les 3 premières lettres d'une liste déroulante
    Bonjour,

    j'ai un problème de compatibilité entre deux fonctions que j'ai empruntées sur des forums d'aide.

    Je fais très bien fonctionner le principe de faire un changement de cellule pour faire afficher les données que je veux dans les autres cellules
    D'un autre côté, j'ai créé une liste déroulante qui utilise les premières lettre du mot pour faire afficher avec la flèche seulement les mots qui incluent ces premières lettres

    Par contre, lorsque j'incorpore ces deux fonctions ensemble, il y a conflit. On dirait qu'à partir du moment ou je clique sur la flèche pour choisir le produit dans la liste de choix, la première fonction détecte un changement et crée un message d'erreur. Ce qui me semble normal vu que bien que je ne change pas de cellules, je clique sur une flèche..

    A l'aide!

    Maxime

  2. #2
    Membre éprouvé
    Bonjour,
    Citation Envoyé par Madro183 Voir le message
    Par contre, lorsque j'incorpore ces deux fonctions ensemble, il y a conflit.
    Si j'ai bien compris, tu nous demandes de résoudre le conflit. Le mieux dans ce cas c'est un peu de diplomatie mais pour être efficace c'est important de connaitre les belligérants. C'est là que se situe le problème car nous ne connaissons pas les duettistes et donc c'est difficile d'avoir la moindre notion de ce qui les attendrirait.
    à toi donc de nous fournir leurs raisons de se quereller et leurs caractères (dans les 2 sens).

  3. #3
    Candidat au Club
    Voici mon code pour afficher des valeurs à des cellules précises lorsque je change de cellule:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For LigneCreatCode = 3 To i
        If Not Application.Intersect(KeyCells, Range(Target.Address)) _
            Is Nothing Then
                If Feuil3.Cells(FormSaisieProdLigne, FormSaisieProdColonne) = Feuil8.Cells(LigneCreatCode, ColonneCreatCode) Then
                    Feuil3.Cells(FormSaisieProdLigne, FormSaisieProdColonne + 1) = Feuil8.Cells(LigneCreatCode, ColonneCreatCode + 3)
                    Feuil3.Cells(FormSaisieProdLigne, FormSaisieProdColonne - 1) = Feuil8.Cells(LigneCreatCode, ColonneCreatCode + 2)
                    LigneCreatCode = 2
                    FormSaisieProdLigne = FormSaisieProdLigne + 1
     
                End If
        End If
    Next


    Et maintenant mon code en lien avec la feuille dans laquelle est contenue ma liste déroulante. Ce code me permet de trouver un produit dans la liste en tappant les premières lettres.
    Ce code est inscrit à mettre la validation de données au niveau de la source qui fait référence à la feuille dans laquelle les valeurs de la liste seront insérées

    Code formule :Sélectionner tout -Visualiser dans une fenêtre à part
    =SI(C8<>"";DECALER(d_noms;EQUIV(C8&"*";l_noms;0)-1;;SOMMEPROD((STXT(l_noms;1;NBCAR(C8))=TEXTE(C8;"0"))*1));l_noms)


    Je suis sûr que le conflit se présente à ce niveau:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
               Is Nothing Then

    Mais comment modifier le tout?

    Merci!

  4. #4
    Membre éprouvé
    Bonjour,
    Citation Envoyé par Madro183 Voir le message
    Je suis sûr que le conflit se présente à ce niveau:
    Tu as de la chance d'en être sûr car tu assimiles une formule de validation à du code VBA et l'on est sur des processus différents.

    L'on ne sait pas comment est lancée ta macro mais si elle est événementielle c'est curieux que ton test 'Target' soit dans une boucle.

  5. #5
    Candidat au Club
    Bonjour Anasecu,

    La macro se lance automatiquement lorsque je change de cellule dans ma feuille excel. La macro recherche dans une autre feuille, parmis une liste, la valeur que j'ai rentré dans la cellule. Ce qui explique la boucle for. Lorsqu'elle a trouvée la valeur, elle affiche certaines valeurs adjacentes à celle-ci de façon automatique. Toutes ces étapes se font à partir du moment que je me retire de la cellule.

    Merci

  6. #6
    Membre éprouvé
    Bonjour
    Citation Envoyé par Madro183 Voir le message
    Ce qui explique la boucle for.
    Sauf que, évidemment sans connaitre précisément tout ton code, la boucle me semble mal placée et ne devrait se situer qu'après ton test avec 'Target'.

  7. #7
    Candidat au Club
    Re-Bonjour,

    j'ai fait la modification mais ça revient absolument au même. Je vais essayer d'emprunter une autre avenue que celle des trois premières lettres du mot.

    Un gros merci quand même pour ton aide! :-)

    Bonne journée!

  8. #8
    Candidat au Club
    Bonjour Anasecu,

    Je voulais te laisser savoir que j'ai trouvé ou était l'erreur. La liste spéciale que j'avais créée qui permet d'entrer les premiers caractères pour filtrer automatiquement les codes dans une liste complète de code référençait à mes codes de produits. Tandis que ma mise à jour de plusieurs cellules précises en fonction du code de produit inséré référençait à mes descriptions de code produit. Donc, ils ne pouvaient pas se parler entre eux. Xcuse mais vraiment content :-). Bonne soirée!

  9. #9
    Membre éprouvé
    Bonjour,
    Citation Envoyé par Madro183 Voir le message
    Donc, ils ne pouvaient pas se parler entre eux. Xcuse mais vraiment content
    Content que tu ais trouvé même si je n'ai pas compris le pourquoi du comment sans avoir la structure de ton classeur.

    Je connais bien par contre la formule de validation que tu utilises car elle est de ma conception, il y a bien longtemps.