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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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 Code vb excel capable de faire des recherches sans les 3 derniers caractères d'une cellule
    Bonjour,

    Je suis actuellement stagiaire , je suis dans un projet où je développe une solution en C# mais il m'est demandé d'effectuer des traitement sur excel par le biais de code.

    J'ai déjà pu implémenter des fonctionnalités sur ce Excel mais il me reste cependant un problème que je n'arrive pas à régler.

    Voila j'ai un fichier Excel configuré pour faire des traitements et c'est ce dernier qui contient du code vb. Ce fichier excel contient 3 feuilles. Le besoin que j'aimerais traiter c'est que lorsqu'on va coller des données dans la feuille 3, plus précisément dans la colonne A , B et C j'aimerais faire la correspondance entre les données de la colonne A de la feuille 3 (LD) et la 4 ème ligne de la feuille 2 (Formatage IM).

    C'est à dire que si une valeur dans colonne A de la feuille 3 est la même qu'une valeur de la 4ème ligne de la feuille 2, il faudrait récupérer la valeur dans la colonne C de la feuille 3.
    Sauf que le problème est que dans les cellules de la colonne A de la feuille 3, il n'y a pas par exemple l'unité "ppm" comme il peut y avoir dans la 4ème Ligne de la feuille 2 ce qui fait que la recherche ne fonctionne pas. J'aimerais faire en sorte que lors de la recherche on ne prenne que en compte ce qu'il y a avant "ppm"

    Par exemple :

    voici les données dans la feuille 2 :
    Nom : Capture formatageIM.PNG
Affichages : 52
Taille : 36,3 Ko

    voici les données de la feuille 3 :
    Nom : Capture LD.PNG
Affichages : 51
Taille : 32,5 Ko


    J'aimerais que pour chaque valeur présente dans la colonne A de la feuille 3, le code fasse une recherche dans la 4eme ligne de la feuille 2 sans prendre en compte le "ppm" à la fin de chaque cellule. Si les valeurs sont les même et bien on copie la valeur de la colonne C de la feuille 3 correspondante et on la colle dans la 5ème ligne de la feuille 2.

    J'ai fait le code pour la recherche, mais je n'arrive pas à intégrer le fait de prendre en compte tout ce qu'il y'a avant "ppm" dans la 4ème ligne de la feuille 2 . Pouvez-vous m'aider sur ce point ?

    Voici le code que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Rechercher()
     
     
    For k = 2 To 50 ' plage des  colones à traiter
    Sheets("Formatage_IM").Select
     
     
    Cells(5, k) = "=IFERROR(VLOOKUP(R4C" & k & ",LD!R1C1:R200C2,2,FALSE),"""")"  'Si on ne trouve pas on met blanc pour éviter #N/A
     
    'On cherche la valeur de R1C1 Row 1 Colonne k, dans la table feuille LD  de R1C1 à R200C2, la deuxième colonne
     
        Next
    End Sub

    Merci de votre compréhension .

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Méthodes Industrialisation
    Inscrit en
    octobre 2020
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Méthodes Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2020
    Messages : 28
    Points : 39
    Points
    39
    Par défaut
    Bonjour à toi,

    4 possibiltés qui me viennet directement :

    - Utilisation de la fonction Find avec un petit * a ajouter à la fin de ta valeur recherché :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Valeur = Sheets("Feuil3").cells(1,1) & "*"
    Set Trouve = Sheets("Feuil2").Row(4).Cells.Find(what:=Valeur, Lookat:=xlWhole)
    - Regarde la fonction like : tu peux comparer 2 chaînes de caractères et ajouter un * à la fin de l'information de ta feuille 3 pour etre indépendant de ton unité.

    - Il semble que l'unité soit marqué dans la feuille 3, tu assemble les 2 chaînes de caractère pour correspondre à ta feuille 2 : Valeur = Cells(1,1) & " " & Cells(1,2)

    - Et la moins jolie, tu compare une à une les cases en supprimant les dernières lettre de la chaîne de la feuille avec un "Left(Valeur, Len(Valeur) -3)".

    A toi de faire ton choix.

    Cordialement,
    Zeabon

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    Bonsoir,

    Je n'ai pas vraiment compris à quoi sert le "*" a la fin de la formule dans la première solution, de plus dans la formule find, que signifie le "what:=Valeur" le nom de chaque cellule de la ligne 4 de la feuille 2 ?

    Merci de votre compréhension

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur Méthodes Industrialisation
    Inscrit en
    octobre 2020
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Méthodes Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2020
    Messages : 28
    Points : 39
    Points
    39
    Par défaut
    Le * permet d'avoir une suite de caractère non définit dans ta recherche.

    Si tu recherche : "MaValeur" alors tu trouveras que les résultats conetant uniquement "MaValeur"
    Mais si tu recherche : "*MaValeur*" alors il trouveras les résultats avec "MaValeur" dans le texte.

    "what:=Valeur" dans find définit se que tu souhaite trouvé. C'est la variable que je définis juste au-dessus pour ajouté le *


    Zeabon

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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 le valeur peut être une colonne entière ?

    Je vous demande ça car je souhaite avoir quelque chose d'assez générique car je ne saurai jamais à l'avance des données qui vont être collées dans le excel. De base le fichier est vierge car il permet de faire des traitements sur les données qu'on va venir coller de dedans


    Lionel

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Salut.

    En Excel, tu peux réaliser cela avec RECHERCHEV, INDEX/EQUIV ou RECHERCHEX (XL365) avec les jokers ? et * => ? remplace n'importe quel caractère à un endroit précis, * remplace un nombre indéfini de caractères à un endroit précis. Tu peux évidemment transcrire cette technique en VBA.

    Nom : 2021-03-04_181059.png
Affichages : 38
Taille : 9,6 Ko

    Vu ta configuration, je m'orienterais vers cette solution, quitte à la mettre en place en VBA.



    Citation Envoyé par Lionel84100 Voir le message
    [...]car je ne saurai jamais à l'avance des données qui vont être collées dans le excel. De base le fichier est vierge car il permet de faire des traitements sur les données qu'on va venir coller de dedans[...]
    Idéalement, on travaille cela sur des tableaux structurés
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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. #7
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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 Pierre,

    Ou devons nous placer le "*" dans la formule ?

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    janvier 2010
    Messages
    10 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : janvier 2010
    Messages : 10 656
    Points : 25 437
    Points
    25 437
    Billets dans le blog
    31
    Par défaut
    Bonjour,
    L'astérisque représente de 0 à x caractères quelques soient leurs valeurs. Ainsi
    • "*ER" signifie que l'on cherche tout ce qui se termine par ER ou ne contiendrait que ER
    • "A*" commence par A ou ne contient que A
    • "*EZ*" contient EZ ou commence par EZ, ou se termine par EZ ou ne contient que EZ

    et toutes les combinaisons sont possibles avec * et ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Ma dernière contribution : VBA - Les macros complémentaires

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Il faut placer les jokers * et ? là où l'on veut dire "n'importe quel(s) caractère(s)", avec ? pour un caractère et * pour plusieurs

    Nom : 2021-03-05_100044.png
Affichages : 23
Taille : 430,1 Ko


    Citation Envoyé par Lionel84100 Voir le message
    [...]
    Ou devons nous placer le "*" dans la formule ?

    Il faut donc parfois recomposer le "motif" en concaténant les données, comme je l'ai illustré dans mon précédent message :

    Nom : 2021-03-05_095512.png
Affichages : 31
Taille : 10,5 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    est ce que je peux rajouter une astérisque dans mon code vba que j'ai déjà fait pour que ça réponde à mon besoin qui est de faire une recherche avec le contenu d'une cellule dans la colonne A de la feuille 3 avec une cellule de la ligne 4 de la feuille 2.


    Mon code ressemble à ça :

    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
     
     
    Sub Rechercher()
    For k = 2 To 50 ' plage des  colones à traiter
    Sheets("Formatage_IM").Select
     
     
    Cells(5, k) = "=IFERROR(VLOOKUP(R4C" & k & ",LD!R1C1:R200C3,3,FALSE),"""")"  'Si on ne trouve pas on met blanc pour éviter #N/A
     
    'On cherche la valeur de R1C1 Row 1 Colonne k, dans la table feuille LD  de R1C1 à R200C2, la deuxième colonne
     
       Next
     
     
    End Sub

  11. #11
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Es-tu sûr qu'il y a une correspondance entre le k de ta cellule et le k de la plage sur laquelle tu appliques RECHERCHEV?

    Perso
    • je travaillerais avec les tableaux structurés;
    • je trouve que la notation R1C1 est une abomination;
    • Pas besoin de boucler pour placer une formule sur une plage;
    • Pas besoin de sélectionner la feuille ou les cellules pour "jouer" avec.



    Pourrais-tu, au départ d'une copie d'écran, expliquer ce que tu souhaites réaliser?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    Pas de soucis je vais vous expliquer ce que je souhaite appliquer.

    Donc au départ, j'ai un excel vierge dans lequel je vient coller des données qui sont des résultats d'analyses chimiques, donc ces résultats peuvent varier. et moi mon but avec ce fichier excel vierge c'est de permettre de faire des traitements en optimisant le temps des chimistes au maximum.

    Donc on va venir coller des données dans la feuille 1 du classeur (Donnés ICP) ensuite on va venir faire des actions pour sélectionner les lignes qu'on veut. Cette partie fonctionne correctement.

    On va aussi venir coller des données appelées LD dans la feuille 3 du classeur, et j'aimerais que quand on clique sur le bouton "rechercher" il y a une correspondance qui se fait entre les valeurs de la colonne A de la feuille 3 et les valeurs de la 4ème ligne de la feuille 2. Si les cellules se correspondent il faut venir coller les données de la colonne 3 de la feuille 3 dans la ligne 5 (LD) de la feuille 2.

    Capture de la feuille 2 :
    Nom : Capture formatageIM.PNG
Affichages : 27
Taille : 36,3 Ko

    Capture de la feuille 3 :
    Nom : Capture LD.PNG
Affichages : 26
Taille : 32,5 Ko


    Jusqu'à présent j'arrivait à faire fonctionner car je croyait que les valeurs de la colonne A de la feuille 3 et les valeurs de la ligne 5 de la feuille 2 était exactement les mêmes avec les unités sauf que le problème c'st qu'il y a les unités (ppm) à la fin de chaque cellule dans la ligne 5 ce qu'il n'y a pas dans les cellules de la colonne A de la feuille 3.

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Voilà comment je procéderais, sans trop me préoccuper de la conception du classeur qui pour moi est à revoir. J'ai supposé que tu voulais transférer les valeurs de la colonne C de la feuille de recherche

    Avec les deux feuilles suivantes:
    Nom : 2021-03-05_103901.png
Affichages : 27
Taille : 12,8 Ko


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
      Dim Source As Range
      Dim Col
     
      Set Source = Worksheets("recherche").Range("a1")
      Do While Source.Value <> ""
        Col = Application.Match(Source.Value & "*", Worksheets("tableau").Range("4:4"), 0)
        If Not IsError(Col) Then Worksheets("tableau").Range("4:4")(2, Col).Value = Source(1, 3).Value
        Set Source = Source(2)
      Loop
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

  14. #14
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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 ça marche comme je le souhaite merci beaucoup à vous .

  15. #15
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    Juste une question, comment dois-améliorer votre code pour que cela marche avec toutes les valeurs présentes dans la colonnes a ?

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Normalement, ça fonctionne de cette manière. La boucle Do... va commencer en A1 de la feuille recherche et descendre à chaque tour jusqu'à trouver une cellule vide en A.

    equivjoker.xlsm
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

  17. #17
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    Bah en testant sur votre classeur ça marche très bien mais dans le bien ça fonctionne uniquement pour la cellule A1.

  18. #18
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Vérifie bien tes valeurs (espaces, point ou virgule, etc...).

    Si tu lances la procédure avec F8 côté VBA, tu verras le code boucler et tu pourras comparer les valeurs pour voir quand le transfert passe ou pas.

    Dans ton classeur et si je reprends tes données, es-tu certain d'avoir AI 394.401 nm au début d'une cellule de la ligne 4 de ton tableau?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

  19. #19
    Membre à l'essai
    Homme Profil pro
    Développeur
    Inscrit en
    janvier 2021
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    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
    Dans ton classeur et si je reprends tes données, es-tu certain d'avoir AI 394.401 nm au début d'une cellule de la ligne 4 de ton tableau?

    Non il se peut qu'il n'y ait pas des valeurs qui ne soient pas au début d'une cellule dans la ligne 4 du tableau c'est pour ça que je souhaite faire des recherches.

  20. #20
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur informatique indépendant
    Inscrit en
    novembre 2003
    Messages
    17 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur informatique indépendant
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 17 108
    Points : 49 276
    Points
    49 276
    Billets dans le blog
    92
    Par défaut
    Je ne comprends pas le problème que tu rencontres. Le code va boucler sur les valeurs en A de la feuille Recherche. Lorsque la valeur de la cellule est trouvée en début d'une cellule de la ligne 4 de la feuille Tableau, la valeur correspondante en C de Recherche sera transférée sur la ligne 5 de la feuille Tableau, en dessous de la correspondance trouvée. Si aucune correspondance n'est trouvée, le code passe à la cellule suivante en A de Recherche et boucle jusqu'à trouver une cellule vide.

    Le code, très court, peut être parcouru en "pas à pas" avec F8, ce qui va te permettre de voir l'exécution de chaque ligne, en particulier celle du IF dont la partie après le Then sera surlignée en jaune lorsqu'une correspondance est trouvée. Tu pourras vite voir quand tu ne passes pas sur ce code alors que tu t'attendrais à y passer. Ce sera sur ces valeurs que tu devras être attentif pour vérifier qu'elles correspondent bien (pas trop peu ou trop d'espaces, un point et pas une virgule, etc...). Je ne vois pas comment être plus clair
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    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...
    ---------------

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