Bonjour à tous, bonjour le forum.
J'ai créé un bout de code qui permet de faire une recherche dans une feuille d'un classeur.
Et en fait, j'aimerai faire cette recherche sur des feuilles différentes de mon classeur.
En écrivant le code, je me suis rendu compte qu'à part le nom de la feuille où s'effectue la recherche, le code est absolument identique.
Ma macro fonctionne parfaitement bien, mais elle est très longue et très répétitive.
J'aimerai donc alléger mon code en créant une fonction que j’appellerai suivant la feuille sur laquelle je fais la recherche.
Mais voilà, je ne sais pas vraiment faire une fonction, comment définir la variable et comment l'appeler dans la macro principale
J'ai regardé un peu les tutoriaux mais bon, voilà, j'ai pas vraiment réussi...
	
	
	
	
	
		
La seule chose qui change est le nom de la feuille qui dans cet exemple s'appelle "PRODUCT KNOWLEDGE".
Dans ce code, j'ai un moteur de recherche sur la feuille SEARCH ENGINE, suivant les critères rentrés je vais chercher mes info dans la feuille PRODUCT KNOWLEDGE et je les copie dans un tableau dans la feuille SEARCH RESULTS.
Ceci n'est qu'une partie du code mais c'est celle qui revient à l'identique si je veux faire une recherche dans une autre feuille.
Si vous pouviez m''aider que vous en serait très très reconnaissante !!!
Par avance merci
Gwen
	
		
			
		
		
	
				
			J'ai créé un bout de code qui permet de faire une recherche dans une feuille d'un classeur.
Et en fait, j'aimerai faire cette recherche sur des feuilles différentes de mon classeur.
En écrivant le code, je me suis rendu compte qu'à part le nom de la feuille où s'effectue la recherche, le code est absolument identique.
Ma macro fonctionne parfaitement bien, mais elle est très longue et très répétitive.
J'aimerai donc alléger mon code en créant une fonction que j’appellerai suivant la feuille sur laquelle je fais la recherche.
Mais voilà, je ne sais pas vraiment faire une fonction, comment définir la variable et comment l'appeler dans la macro principale
J'ai regardé un peu les tutoriaux mais bon, voilà, j'ai pas vraiment réussi...
		Code:
	
	
	If Not Sheets("SEARCH ENGINE").Range("g" & i & ":J" & i).Find(True) Is Nothing Then
       valeur = Sheets("SEARCH ENGINE").Range("A" & i).Value
       Set r = Sheets("PRODUCT KNOWLEDGE").Rows(2).Find(valeur, , xlValues, xlWhole)
       If Not r Is Nothing Then col = r.Column
           If Sheets("SEARCH RESULTS").Columns(l).Value = "" Then
                            Sheets("PRODUCT KNOWLEDGE").Cells(2, col).Copy
                            Sheets("SEARCH RESULTS").Cells(2, l).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
                            colnew = Sheets("SEARCH RESULTS").Cells(2, l).Column
                            
                        Else:
                            Sheets("SEARCH RESULTS").Cells(2, l + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
                            colnew = Sheets("SEARCH RESULTS").Cells(2, l + 1).Column
                            
            End If
            l = l + 1
            
           
       For j = 3 To fintableau
                If Sheets("SEARCH ENGINE").Range("G" & i).Value = True Then
                    If Sheets("PRODUCT KNOWLEDGE").Cells(j, col).Value = "1" Then
                        If Sheets("SEARCH RESULTS").Range("a" & k).Value = "" Then
                            Sheets("PRODUCT KNOWLEDGE").Range("A" & j & ":D" & j).Copy
                            Sheets("SEARCH RESULTS").Range("a" & k).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
                            Sheets("SEARCH RESULTS").Cells(k, colnew).Value = "1"
                        Else:
                            Sheets("SEARCH RESULTS").Range("a" & k + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                            :=False, Transpose:=False
                            Sheets("SEARCH RESULTS").Cells(k + 1, colnew).Value = "1"
                        End If
                        k = k + 1
                        
                    End If
                End If
         Next
End if
	La seule chose qui change est le nom de la feuille qui dans cet exemple s'appelle "PRODUCT KNOWLEDGE".
Dans ce code, j'ai un moteur de recherche sur la feuille SEARCH ENGINE, suivant les critères rentrés je vais chercher mes info dans la feuille PRODUCT KNOWLEDGE et je les copie dans un tableau dans la feuille SEARCH RESULTS.
Ceci n'est qu'une partie du code mais c'est celle qui revient à l'identique si je veux faire une recherche dans une autre feuille.
Si vous pouviez m''aider que vous en serait très très reconnaissante !!!
Par avance merci
Gwen