Chercher le contenue d'une cellule dans une autre chaîne de car
Résolu/Fermé
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
-
4 juin 2015 à 13:13
0548 Messages postés 73 Date d'inscription samedi 21 mars 2015 Statut Membre Dernière intervention 19 janvier 2017 - 7 juin 2015 à 17:17
0548 Messages postés 73 Date d'inscription samedi 21 mars 2015 Statut Membre Dernière intervention 19 janvier 2017 - 7 juin 2015 à 17:17
A voir également:
- Chercher le contenue d'une cellule dans une autre chaîne de car
- Aller à la ligne dans une cellule excel - Guide
- Chaine tnt gratuite sur mobile - Guide
- Verrouiller une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Plus de chaine tv - Guide
3 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
4 juin 2015 à 13:23
4 juin 2015 à 13:23
bonjour,
mais maintenant , j'ai un problème où le contenue de la cellule A2 n'est qu'une parti d'une autre cellule trouvé dans la colonne B ;
Et en fin de compte vous cherchez quoi ?????
mais maintenant , j'ai un problème où le contenue de la cellule A2 n'est qu'une parti d'une autre cellule trouvé dans la colonne B ;
Et en fin de compte vous cherchez quoi ?????
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
4 juin 2015 à 13:39
4 juin 2015 à 13:39
Bonjour
Tu peux utiliser une fonction personnalisée composée avec une macro
Exemple, à adapter à ton fichier :
http://www.cjoint.com/c/EFelMsVsgbh
Cdlmnt
Via
Tu peux utiliser une fonction personnalisée composée avec une macro
Exemple, à adapter à ton fichier :
http://www.cjoint.com/c/EFelMsVsgbh
Cdlmnt
Via
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
4 juin 2015 à 14:40
4 juin 2015 à 14:40
Merci à tous ,
via55 , j'ai vu que vous avez une formule ==> cherchermot() mais si c'est possible pouvez vous me donner la meme fonction en anglais , car mes fonctions prédefinie sont en anglais
via55 , j'ai vu que vous avez une formule ==> cherchermot() mais si c'est possible pouvez vous me donner la meme fonction en anglais , car mes fonctions prédefinie sont en anglais
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
>
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
4 juin 2015 à 15:01
4 juin 2015 à 15:01
Pas besoin de correspondance cherchermot n'existe pas dans les fonctions prédéfiniées, c' est le nom que j'ai donné à ma fonction personnalisée, c'est le nom de la macro (tu n'a pas fais ALT+F11 comme suggéré pour voir la macro ?)
Quant à la macro elle est en langage VBA donc en anglais et lisible par tout Excel
Quant à la macro elle est en langage VBA donc en anglais et lisible par tout Excel
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
4 juin 2015 à 15:09
4 juin 2015 à 15:09
Merci,
toute à l'heure j'ai appuyé sur ctr+F11 à la place de alt+F11
excusez moi et merci une autre fois
toute à l'heure j'ai appuyé sur ctr+F11 à la place de alt+F11
excusez moi et merci une autre fois
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
5 juin 2015 à 21:37
5 juin 2015 à 21:37
Rebonsoir,
via55
Dans votre cas , vous avez fait une recherche dans une seule colonne, mais moi dans mon exemple je veux faire une recherche dans plusieurs colonnes ,
alors j'ai voulu remplacer la ligne de votre code:
- chaine = Range("D" & n).Value par chaine = Range("B:AE" & n).Value.
anisi que : If Tableau(i) = mot Then rep = Range("D" & n).Value par If Tableau(i) = mot Then rep = Range("B:AE" & n).Value.
et ça n'a pas marché par ce que ça l'aire faux , pour cela j'ai besoin une autre fois de votre aide .
Merci encore une fois .
via55
Dans votre cas , vous avez fait une recherche dans une seule colonne, mais moi dans mon exemple je veux faire une recherche dans plusieurs colonnes ,
alors j'ai voulu remplacer la ligne de votre code:
- chaine = Range("D" & n).Value par chaine = Range("B:AE" & n).Value.
anisi que : If Tableau(i) = mot Then rep = Range("D" & n).Value par If Tableau(i) = mot Then rep = Range("B:AE" & n).Value.
et ça n'a pas marché par ce que ça l'aire faux , pour cela j'ai besoin une autre fois de votre aide .
Merci encore une fois .
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
5 juin 2015 à 23:00
5 juin 2015 à 23:00
Re,
Macro à transformer ainsi (il faut faire une boucle sur toutes les colonnes)
Cdlmnt
Via
Macro à transformer ainsi (il faut faire une boucle sur toutes les colonnes)
Function cherchemot(mot As String) Dim Tableau() As String trouve = 0 rep = "Non trouvé" ' boucle sur les colonnes 2 à 31 For y = 2 To 31 ' boucle sur les 10 lignes de la colonne y - augmenter le nombre si nécessaire For n = 1 To 10 ' extrait la chaine et découpe la chaine en fonction des espaces " " 'le résultat de la fonction Split est stocké dans un tableau chaine = Cells(n, y).Value Tableau = Split(chaine, " ") 'boucle sur le tableau For i = 0 To UBound(Tableau) 'si mot est trouvé dans le tableau la variable rep prend la valeur de la ligne If Tableau(i) = mot Then rep = Cells(n, y).Value Next i Next n Next y ' on renvoie le resultat cherchemot = rep End Function
Cdlmnt
Via
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
5 juin 2015 à 23:54
5 juin 2015 à 23:54
Merci infiniment,
juste une dernière question , comment faire pour créer une méthode?
moi , avant je clique sur (vieux , macro , record j'écris le nom , puis je clique sur view , edit et j'aurai l'interface dédié au développeur ) j'ai utilisé votre méthode et j'ai fait ctr+s . ==> j'ai eu le résultat que j'ai voulu , quand j'ai mis =cherchemot(A1).
Mais , quand j'ai voulu que cette méthode marche pour les autre ligne . j'ai cliqué sur la fin de la case et j'ai eu le même résultat qui est affiché dans la première ligne ;
Donc je me ss dis que forcement , il y'a une autre façon de le faire .
Merci
juste une dernière question , comment faire pour créer une méthode?
moi , avant je clique sur (vieux , macro , record j'écris le nom , puis je clique sur view , edit et j'aurai l'interface dédié au développeur ) j'ai utilisé votre méthode et j'ai fait ctr+s . ==> j'ai eu le résultat que j'ai voulu , quand j'ai mis =cherchemot(A1).
Mais , quand j'ai voulu que cette méthode marche pour les autre ligne . j'ai cliqué sur la fin de la case et j'ai eu le même résultat qui est affiché dans la première ligne ;
Donc je me ss dis que forcement , il y'a une autre façon de le faire .
Merci
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
>
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
6 juin 2015 à 00:22
6 juin 2015 à 00:22
Re
Je ne comprends pas trop ce que tu me dis
Une fois la macro Function mise dans un module de l'éditeur VBA tu utilises la fonction comme toute autre fonction,
soit si tu recherches par exemple le mot livre, dans une cellule tu mets =cherchemot("livre")
soit tu recherches le mot qui est en A1 et en B1 par exemple tu mets =cherchemot(A1)
si tu as plusieurs mots en A1, A2 etc tu étires la formule de B1 en B2 etc
Cdlmnt
Via
Je ne comprends pas trop ce que tu me dis
Une fois la macro Function mise dans un module de l'éditeur VBA tu utilises la fonction comme toute autre fonction,
soit si tu recherches par exemple le mot livre, dans une cellule tu mets =cherchemot("livre")
soit tu recherches le mot qui est en A1 et en B1 par exemple tu mets =cherchemot(A1)
si tu as plusieurs mots en A1, A2 etc tu étires la formule de B1 en B2 etc
Cdlmnt
Via
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
Modifié par 0548 le 7/06/2015 à 15:12
Modifié par 0548 le 7/06/2015 à 15:12
Re ,
je suis désolé pour le retard , mon ordinateur s'est planté , lorsque j'ai voulu exécuter votre code pour 100425 lignes et dans ceulle il y'a un texte ecrit de ce genre :
- #index 942885/#n Mark Gershon/#a Temple Univ., Philadelphia, PA/#pc 1/#cn 0/#hi 0/#pi 0.0000/#upi 0.0000/#t multiobjective dynamic programming;regional natural resource management .
et moi je veux chercher seulement l'index : exemple #index 942885.
j'ai mis la macro Function dans un module de l'éditeur VBA et j'ai utilisé la fonction en tapant "=cherchemot(A2)" ; j'ai eu le résultat d'une manière très vite.
Mais , quand j'ai voulu excuter la meme fonction 'cherchermot() pour les autres lignes . ça fait 2 jours que le programe tourne ; et il n'a exécuté que 6% du fichier .
y'a t'il une autre facon de le faire ?
Ps: j'ai voulu mettre le fichier à l'aide du site Cjoint.com mais la taille de mon fichier est grande.
Merci D'avance.
je suis désolé pour le retard , mon ordinateur s'est planté , lorsque j'ai voulu exécuter votre code pour 100425 lignes et dans ceulle il y'a un texte ecrit de ce genre :
- #index 942885/#n Mark Gershon/#a Temple Univ., Philadelphia, PA/#pc 1/#cn 0/#hi 0/#pi 0.0000/#upi 0.0000/#t multiobjective dynamic programming;regional natural resource management .
et moi je veux chercher seulement l'index : exemple #index 942885.
j'ai mis la macro Function dans un module de l'éditeur VBA et j'ai utilisé la fonction en tapant "=cherchemot(A2)" ; j'ai eu le résultat d'une manière très vite.
Mais , quand j'ai voulu excuter la meme fonction 'cherchermot() pour les autres lignes . ça fait 2 jours que le programe tourne ; et il n'a exécuté que 6% du fichier .
y'a t'il une autre facon de le faire ?
Ps: j'ai voulu mettre le fichier à l'aide du site Cjoint.com mais la taille de mon fichier est grande.
Merci D'avance.
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
>
0548
Messages postés
73
Date d'inscription
samedi 21 mars 2015
Statut
Membre
Dernière intervention
19 janvier 2017
7 juin 2015 à 16:19
7 juin 2015 à 16:19
Bonjour
100 000 lignes et des longues chaines , pas étonnant que ça plante
Tu aurais pu donner toutes les précisions dès le départ , ça change tout, notamment le fait qu'il faut extraire qu'une partie du résultat trouvé
En procédant autrement, sans découpage des chaines mais avec une recherche par colonne, ce devrait être plus rapide. A la fin on extrait de la chaine les caractères à gauche du premier / trouvé (il faut que toutes les références dans les cellule soient présentées ainsi; sinon l'extraction n'est pas possible)
Un exemple, à adapter à tes besoins :
http://www.cjoint.com/c/EFhopJR4KrL
Cdlmnt
Via
100 000 lignes et des longues chaines , pas étonnant que ça plante
Tu aurais pu donner toutes les précisions dès le départ , ça change tout, notamment le fait qu'il faut extraire qu'une partie du résultat trouvé
En procédant autrement, sans découpage des chaines mais avec une recherche par colonne, ce devrait être plus rapide. A la fin on extrait de la chaine les caractères à gauche du premier / trouvé (il faut que toutes les références dans les cellule soient présentées ainsi; sinon l'extraction n'est pas possible)
Un exemple, à adapter à tes besoins :
http://www.cjoint.com/c/EFhopJR4KrL
Cdlmnt
Via