Re : Question d'une débutante en macro pour une recherche de caractères
Bonsoir Lolita et le forum,
Je me suis permis de reprendre votre Macro VBA et j'ai travailler dessus, il y a des choses que je sais est d'autre sur lequelles je bute, mais il y a des idées dans la mise en oeuvre pour amélioré les temps de traitements sur des grandes liste suite au complément que vous m'apporteraient.
j'aimerais pour les personnes qui travail sur le transfert de données d'une feuiles à une autres avoir une astuce simple sur la méthodes range.
Pour vous Lolita est aussi pour les autres j'ai pris le temps de commenter la macro est changer les Nom des onglets pour plus de facilité.
Je colle la macro toute est expliqué ici est dans le fichier joint.
Option Compare Text ' cette Option permet de ne pas faire la différence entre les minuscules est les majuscules
Sub recherche()
' Recherche dans les cellule de la Feuil1 ci elle existe
' Ci dans la Feuil1 la chaine de caractéres est trouver rapatrie le resultat en Feuil2
MyValue = InputBox("Entre le nom à chercher", "Recherche d'une nom", Default) ' Input box ou sera noté la chaine de caractére
Range("C3") = MyValue ' La variable écrite dans l'inputbox est stocké
Worksheets("Feuil1").Select ' Selection de la feuil1
x = Range("e65536").End(xlUp).Row ' Fin de la derniere ligne de la Feuil1
' Boucle
For Each c In Range(Cells(3, 5), Cells(x, 5)) 'max de ligne dans ta colonne
If c.Value Like ("*" & MyValue & "*") Then ' Like pour comparer une chaine // entre parenthése = ("*" & MyValue & "*")
' la variable a tester dans la chaine c'est la syntaxe les *
i = 1 + 8 ' C'est le compteur d'incrémentation il commence a 9 pour ranger le resultat
' Obtenue dans le Feuil2 a la ligne 9 colonne 3
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
' Ceci sont des teste pour comprendreest voir que cela fonctionne
MsgBox Range(c.Address(0, 0)).Value ' = à l'adresse de la cellule active c dans for each (renvois resultat)
Worksheets("Feuil2").Range(Cells(i, 3), Cells(i, 3)).Select ' = est celui la pour le la selection de la Feuil2 (Lorsque je suis dans la Feuil1)
' = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
' Voila se que je voudrais faire avec simplicité mais qui fonctionne pas
' J'aimerais trouver la syntaxe avec le range pour récupéré la valeur de
' la Feuil1 que j'ai tester avec le if et renvoyer cette valeur dans la
' feuil 2 (sans avoir a activer la feuil2) écrire directement à l'intérieur
' celle-ci.
Range(c.Address(0, 0)).Value = Worksheets("Feuil2").Range(Cells(i, 3), Cells(i, 3)) ' = fonctionne pas à corriger
End If ' Fin de la condition
Next c ' Fin de la boucle
End Sub
Cordialement Laurent
ps : Il ne faut jamais d'espace dans les noms de module lolita