Transformer une Sub en Function

Fermé
Miss_tik76 - 27 janv. 2016 à 11:59
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 27 janv. 2016 à 13:57
Bonjour à tous,

J'ai créer une Sub qui fonctionne très bien en l'appelant par un bouton.
Je compare les 3 cellules à droite de la cellule où je veux que le résultat se copie. Si ces 3 cellules sont identiques à celles de la feuille Buckets il me copie le texte en colonne D.

Sub Bouton5_Cliquer()

Application.ScreenUpdating = False

For ligne = 4 To 100

For ligne1 = 2 To 62

If Cells(ligne, "E").Value = Worksheets("Buckets").Cells(ligne1, "A").Value Then
If Cells(ligne, "F").Value = Worksheets("Buckets").Cells(ligne1, "B").Value Then
If Cells(ligne, "G").Value = Worksheets("Buckets").Cells(ligne1, "C").Value Then
Worksheets("Buckets").Cells(ligne1, "D").Copy
Worksheets("Inventory").Cells(ligne, "D").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End If
End If

Next

Next

End Sub


Mais je souhaiterai la transformer en fonction afin de l'appeler dans ma cellule D4 (par exemple) par la formule =bucket(D4).

Function bucket(Cellulecourante As Range) As String

For ligne = 4 To 100

For ligne1 = 2 To 62

If Cellulecourante.Offset(0, 1).Value = Worksheets("Buckets").Cells(ligne1, "A").Value Then
If Cellulecourante.Offset(0, 2).Value = Worksheets("Buckets").Cells(ligne1, "B").Value Then
If Cellulecourante.Offset(0, 3).Value = Worksheets("Buckets").Cells(ligne1, "C").Value Then
Worksheets("Buckets").Cells(ligne1, "D").Copy
Worksheets("Inventory").Cellulecourante.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
End If
End If

Next

Next

End Function


Merci à tous pour votre aide ;)

1 réponse

michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
27 janv. 2016 à 13:57
Bonjour
une Fonction ne renvoie qu'une seule valeur.....
0