Macro de recherche

Résolu
cs_chaucolat Messages postés 3 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 21 juin 2011 - 7 juin 2011 à 14:35
cs_chaucolat Messages postés 3 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 21 juin 2011 - 21 juin 2011 à 10:14
Bonjour,
je suis débutant en VBA et on m'a demandé de créer une macro de recherche qui permettrer de rechercher une valeur dans plusieur feuille si la valeur est trouvé il faudrais la recopier dans une autre feuille ainsi que toute la ligne correspondante a la valeur cherché.
J'ai reussi a faire ca mais ca ne fait que surligner la valeur, ca ne regroupe pas la valeur de toute les feuille dans une seul feuille avec les ligne ossocié.
De l'aide serais la bienvenue.

Sub Macro_Recherche()					'macro de recherche
Dim Colonne As String					'declaration de la variable Colonne comme un tableau
Dim Cel As Range					'declaration de la variable Cel comme un tableau
Dim Feuil As Worksheet					'declaration de la variable feuil comme un tableau
Dim PN As String					'declaration de la PN comme un tableau
Dim X As Byte						'declaration de la X comme un tableau
 
Colonne = "c:c"						'recherche dans la colonne A-->A
PN = InputBox("PN à rechercher ?")			'affichage de l'index de recherche
'inscription du PN rechercher
For Each Feuil In Sheets				
For Each Cel In Feuil.Range(Colonne)				
If UCase(Cel) Like "*" & UCase(PN) & "*" Then			'si PN trouvé
 								'sinon  
Feuil.Activate							
Cel.Activate
 
X = MsgBox("PartNumber """ & PN & """ trouvé :" & Chr(13) & _		 
"Sur la feuille : " & Feuil.Name & Chr(13) & _				 
"à la cellule : " & Cel.Address(0, 0) & Chr(13) & Chr(13) & _		
"Oui : arrêter la recherche" & Chr(13) & _				
"Non : continuer la recherche " & Chr(13), vbDefaultButton2 + _		
vbQuestion + vbYesNo, "PN TROUVÉ")					
'message PN trouvé
'sur tel page
'à tel cellule
'cliquer sur oui pour stoper la recherche
'cliquer sur non pour continuer la recherche
'box intitulé PN trouvé


Select Case X
Case 6
    Feuil.Activate
    Cel.Activate
    Exit Sub
Case 2 				'annuler on sort
    Exit Sub
Case Else 			'Non=7
'on fait rien, mais on pourrait
End Select
End If
Next Cel
Next Feuil
MsgBox ("introuvable")			'affichage du message "introuvable" si la condition est non rempli
End Sub					'fin de la recherche

4 réponses

SebSemos Messages postés 57 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 13 juin 2011 1
7 juin 2011 à 15:47
'on fait rien, mais on pourrait

euh, tu m'as tué sur ce coup


Plus sérieusement :
ca ne fait que surligner la valeur

sa se fait avec la ligne :
Cel.Activate


Donc, à la place, ou après cette ligne, il faut mettre le code qui copy la valeur, puis la colle ailleur, un truc du genre :

Workbook1.worksheets(K).cells(A,B)=Workbook2.worksheets(M).cells(C,D) 


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
3
cs_chaucolat Messages postés 3 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 21 juin 2011
12 juin 2011 à 21:32
Merci de ta reponce mais quanje lance la macro en rajoutant ce que tu ma dit ca plante et ca me me dit qu'il n'y a pas d'objet. Ca veux dire quoi exactement ?
0
SebSemos Messages postés 57 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 13 juin 2011 1
13 juin 2011 à 12:50
Salut, je pense que sa vient de Workbook1.worksheets

Il faut que tu les remplacent par les noms de ton classeur et de ta feuille ;)


_______________________
Imports System.Thinking
'La vie Roxxx un max à qui s'en donne la peine
0
cs_chaucolat Messages postés 3 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 21 juin 2011
21 juin 2011 à 10:14
Salut, je vien de me rendre compte que j'ai un autre probleme qui est le suivant : lorsque j'ai fini une recherche, je n'arrive plus a relancé la macro pour effectuer une nouvelle recherche il y a un message d'erreur qui dit "reférence non valide".
Merci d'avance.
0
Rejoignez-nous