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 :

changer de cellule + insérer les 3 premières lettres d'une liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    acheteur
    Inscrit en
    Avril 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : acheteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut 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 chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    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
    Membre à l'essai
    Homme Profil pro
    acheteur
    Inscrit en
    Avril 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : acheteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    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 chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    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
    Membre à l'essai
    Homme Profil pro
    acheteur
    Inscrit en
    Avril 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : acheteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    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 chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    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
    Membre à l'essai
    Homme Profil pro
    acheteur
    Inscrit en
    Avril 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : acheteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    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
    Membre à l'essai
    Homme Profil pro
    acheteur
    Inscrit en
    Avril 2020
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : acheteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2020
    Messages : 15
    Points : 13
    Points
    13
    Par défaut
    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 chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    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.

Discussions similaires

  1. [XL-2007] Lire les 3 premières lettres d'une cellule
    Par nioko dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/12/2012, 17h04
  2. [XL-2007] Sélectionner les 3 premières lettre d'une chaine de caractères
    Par souad12 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/11/2012, 10h10
  3. Réponses: 1
    Dernier message: 01/04/2009, 19h40
  4. Récupérer les deux premières lettres d'une chaine
    Par moscovisci dans le forum ASP
    Réponses: 3
    Dernier message: 10/01/2006, 14h53

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