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 :

Code vb excel capable de faire des recherches sans les 3 derniers caractères d'une cellule


Sujet :

Macros et VBA Excel

  1. #21
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Oui je comprends votre code c'est exactement ce que je souhaite obtenir, vous avez bien cerné le problème. Mais je ne comprends pas pk ça ne marche pas. je vais essayer de faire le pas à pas et je vous tiens au courant de si j'ai un problème .

  2. #22
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Partage ton classeur s'il ne contient pas de données confidentielles. Pour ma part, je suis pratiquement certain qu'il y a une erreur de saisie quelque part.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #23
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    J'ai vraiment essayer mais je ne trouve toujours pas le problème

  4. #24
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Sans données et sans le code que tu utilises, je ne sais pas t'aider plus, ma boule de cristal est en panne
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #25
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Je vous joint le fichier excel.

    Je vous ai mis les données que je pourrais recevoir après une analyse chimique.


    FichierParentThermo2.xlsm

  6. #26
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    La cellule A3 de LD => 3 espaces entre AI203 et ppm... La cellule IA de Formatage_IM => 1 seul espace...

    C'est pas faute d'avoir dit de vérifier les espaces et la saisie (3X)
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #27
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Mais ducoup je dois faire comment pour régler ça ? Il faut forcément prendre en compte les espace pas l’intitulé ? Par exemple ça ne va pas détecter directement si il y a juste le AL2O3 ?

  8. #28
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Ce n'était pas la demande de départ

    On ne peut pas inventer une solution. On réfléchit aux cas qui se posent et on en déduit des règles de gestion. Si des données sont par exemple toujours constituées de 2 lettres puis un espace puis une valeur puis un espace, on peut faire quelque chose avec cela, mais il faudrait que tu précises ce que tu cherches.

    On pourrait aussi supprimer les espaces excédentaires avec par exemple la fonction SUPPRESPACE d'Excel (ou en VBA) pour tester. Tout dépend de TES règles.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #29
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    je vous prie de m'excuser du retard pour la réponse.

    Je suis désolé si je me suis fait mal comprendre concernant ma demande de départ. j'ai cru comprendre que par le biais de "*" dans la formule et bien il était possible que ça puisse détecter une partie ressemblante entre deux cellules et que ce n'était pas forcément obligé que les cellules soient exactement les mêmes pourque cela fonctionne.

    Ce que je recherche c'est simplement que par exemple si il y'a "Al 167.019 nm" dans la colonne A de la 3ème feuille, de trouver la cellule correspondante dans la ligne 4 de la feuille 2 même si il y a le ppm en plus. Et que pareil pour les oxydes donc par exemple Al2O3 ppm dans la colonne A de la 3ème feuille, de trouver la cellule correspondante dans la ligne 4 de la feuille 2.


    je vais tester la fonction SUPPRESPACE en vba afin de voir si cela fonctionne pour mon besoin.

    Merci de votre compréhension.

  10. #30
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Les jokers permettent de réaliser ce que tu souhaites, mais relis bien ma réponse relative aux espaces en trop dans une des recherches. Je pense que la première chose à réaliser est de nettoyer tes données pour être certain que les correspondances soient possibles. Relis mon message du 05/03 12h14.

    • Il me semble que la meilleure façon de procéder est de d'abord nettoyer tes données.
    • Les espaces en trop dont je parlais dans ce message sont clairement des erreurs de saisie qu'il convient de corriger avant d'aller plus loin.
    • Vouloir bâtir des formules qui corrigent ce genre d'erreur est une entreprise inévitablement vouée à l'échec.
    • Ca n'a aucun sens d'essayer de créer une formule qui trouve "A B" sur base de "A B"...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #31
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Vouloir bâtir des formules qui corrigent ce genre d'erreur est une entreprise inévitablement vouée à l'échec.
    Ca n'a aucun sens d'essayer de créer une formule qui trouve "A B" sur base de "A B"...


    Que voulez- dire par cela ? j'ai pas totalement saisie ce que vous souhaitiez dire

  12. #32
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    J'avais l'impression que les explications étaient claires.

    Je reprends:

    Dans le fichier que tu posté, il y a des problèmes d'espaces superflus sur certaines donnée (revoir mon post du 5/03 11h09, je cite les valeurs impliquées). Il me semble indispensable que tu nettoies d'abord tes données pour qu'elles soient concordantes. On peut, grâce aux jokers, trouver une valeur "qui commence par", mais si on doit en plus, au sein de la formule, qu'elle soit en Excel ou en VBA, "nettoyer" les données en envisageant tous les cas problématiques qui peuvent se présenter, on va arriver dans l'usine à gaz.

    Relis posément mes messages sur les espaces, regarde ce qu'il en est dans tes fichiers et nettoie-les. Dans le fichier que tu as donné, lorsque je nettoie les valeurs (suppression des espaces inutiles), la macro fournie retrouve bien les bonnes valeurs d'une feuille à l'autre.


    Je ne vois pas comment je pourrais être plus clair
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  13. #33
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Super c'est très clair maintenant.

    Ce code se trouve incrusté dans ma feuille 3 dans le excel .

    Est ce que vous pensez que l'avant dernière ligne du code est suffisante pour effacer les espaces en trop ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Columns("A").Replace "(", ""
    Columns("A").Replace ")", ""
    Columns("A").Replace "   ", " "
    End Sub

  14. #34
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 947
    Points
    55 947
    Billets dans le blog
    131
    Par défaut
    Il faut voir comment tu changes tes valeurs en A. Si tu changes tes valeurs en les amenant par copier-coller de plusieurs valeurs, tu ne traiteras pas les cas de la même façon que si tu modifies les données une par une.

    Si tes valeurs peuvent correspondre à un motif de saisie, c'est-à-dire une séquence de caractères. Dans ton cas, on pourrait penser que ta saisie doit correspondre à deux lettres, un espace, trois chiffres, un point, trois chiffres, un espace, nm. Ca correspond à un motif que l'on peut tester : "?? ###.### nm"

    Il faut voir aussi si tu souhaites alerter de l'erreur ou essayer de corriger. Perso, je me contenterais d'alerter de l'erreur. Dès lors, si on est dans le cadre d'un motif de saisie à respecter, et en tenant compte de ce que tu as montré comme valeurs, on pourrait placer une mise en forme conditionnelle formulée avec la formule suivante: =NON(OU(A1="";ET(GAUCHE(A1;2)>="AA";GAUCHE(A1;2)<="ZZ";STXT(A1;3;1)=" ";STXT(A1;4;3)>="000";STXT(A1;4;3)<="999";STXT(A1;8;3)>="000";STXT(A1;8;3)<="999";STXT(A1;11;3)=" nm"))). Cette solution te permet d'amener plusieurs valeurs par copier-coller (de préférence un copier-coller valeurs).

    Dans le cas où tu modifies les cellules une par une, tu pourrais utiliser le code suivant, qui va tester si tu modifies une cellule de A. Si c'est le cas, tu testes que la saisie correspond au motif. Si non, tu annules la saisies et tu affiches un message:

    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 Worksheet_Change(ByVal Target As Range)
      On Error GoTo Catch
     
      If Target.Column = 1 And Target.Count = 1 Then
        If Not Target.Value Like "?? ###.### nm*" Then
          MsgBox "Raté"
          On Error GoTo Catch
          Application.EnableEvents = False
          Application.Undo
        End If
      End If
     
    Catch:
      Application.EnableEvents = True
    End Sub

    Si tu modifies les valeurs en A par copier-coller, tu vas devoir passer par une boucle sur les valeurs saisies en A et tester les valeurs une par une pour qu'elles respectent le motif avec Like...


    Bien entendu, si les données sont amenées d'un logiciel ou tu peux remarquer des erreurs récurrentes, tu peux te lancer dans le code que tu as montré, mais tu vas suer pour envisager tous les cas. On est vraiment dans un cas spécifique, ici.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #35
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    Janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 23
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2021
    Messages : 50
    Points : 15
    Points
    15
    Par défaut
    Merci pour ces informations.

    je partirais plus sur du copier-coller au moins ça va faciliter la tache à l'utilisateur au lieu de modifier les cases une par une. Si j'ai bien compris, il faut donc que je crée une boucle dans le code de a feuille 3 afin d'y incruster le code pour alerter l'erreur pour pouvoir amener plusieurs valeurs par copier-coller ?

Discussions similaires

  1. Code vb excel capable de faire des recherches
    Par Lionel84100 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/02/2021, 12h45
  2. Modification des derniers caractères dans une cellule
    Par ggerphagnon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/09/2020, 08h10
  3. Réponses: 4
    Dernier message: 04/12/2018, 16h28
  4. Réponses: 2
    Dernier message: 18/12/2009, 17h56
  5. Réponses: 11
    Dernier message: 05/12/2008, 10h31

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