Fonction ne va pas chercher les valeurs dans la feuille demandée

Bonjour

Petit sujet pour un souci d'ouverture de feuilles

J'ai un onglet qui est ma feuille de travail

Ellee est vide pour l'exemple mais Il y sera saisi des données d'heures qui seront transmises pas une macro pas encore faite dans la feuille "match a saisir" en colonne K. J'ai quand meme mis un bouton avec les données remplie manuellement

Dans le second onglet "horaire dernier match", la fonction doit récupérer le numéro de ligne, de colonne dans la feuille "match a saisir" puis recopier en face de chaque dossard la colonne K de la feuille "match a saisir".

dans le 3eme onglet "match a saisir" , j'ai rempli manuellement les données pour l'exemple.

La fonction a l'air de bien se dérouler quand j'ai l'onglet "match a saisir" ouvert mais je n'arrive pas à prendre les données dans la feuille "match a saisir" lorsque je suis sensé etre sur la feuille "travail"

pourriez vous m'aider il me semble pourtant bien faire une demande d'ouverture de la feuille dans ma fonction.

Mon but est de travailler sur la page "travail" qui reste ouverte tout le temps et de remplir le second onglet en lançant le bouton.

Pas simple à expliquer , je joins le fichier.

Grand merci à vous pour votre aide

Patrick

Sub heure()

Set wshdm = ActiveWorkbook.Worksheets("horaire dernier match")

With ActiveWorkbook.Worksheets("match a saisir") 'ouverture de la feuille match a saisir

For j = 6 To 9

col = j

For i = 2 To 30

ligne = i

dossard = Cells(ligne, col)

If dossard <> "" Then

' on recherche le dossard dans wshdm

Set re = wshdm.Columns("A:A").Find(dossard, lookat:=xlWhole, LookIn:=xlValues)

If re Is Nothing Then

MsgBox "dossard n°" & dossard & " non trouvé dans la feuille horaire dernier match"

Else

' dc première colonne libre pour ce dossard

dc = 4

' titre pour la nouvelle colonne"

wshdm.Cells(2, dc) = "Heure retour match"

wshdm.Cells(re.Row, dc) = Now 'enregistrement de l'heure de fin mais il faudrait la colonne K

wshdm.Cells(re.Row, dc).NumberFormat = "hh:mm"

End If

End If

Next i

Next j

End With

End Sub

8classeur1.xlsm (20.89 Ko)

Salut patrickping,

il manque un "." avant Cells(ligne, col)

dossard = .Cells(ligne, col)

Bonne nuit

Salut m3ellem1

ok mais ce n'est pas ce qui fait que la fonction ne va pas chercher sur la bonne feuille.

merci quand meme

Et c‘est laquelle la bonne feuille?

Ca y est.

j'ai trouvé.

je recherche le nom de la feuille de travail

puis j''active la feuille avec les données recherchées et je rouvre la feuille de travail

En fait je n'activais pas la feuille recherchée.

Dim sht

sht = ActiveSheet.Name

Set wshdm = Sheets("horaire dernier match")

Set wshmas = Sheets("match a saisir")

With wshmas.Activate

For j = 6 To 9

col = j

For i = 2 To 30

ligne = i

dossard = Cells(i, col)

If dossard <> "" Then

' on recherche le dossard dans wshdm

Set re = wshdm.Columns("A:A").Find(dossard, lookat:=xlWhole, LookIn:=xlValues)

If re Is Nothing Then

MsgBox "dossard n°" & dossard & " non trouvé dans la feuille horaire dernier match"

Else

' dc première colonne libre pour ce dossard

dc = 4

' titre pour la nouvelle colonne"

wshdm.Cells(2, dc) = "Heure retour match"

wshdm.Cells(re.Row, dc) = Cells(i, 11) 'enregistrement de l'heure de fin

wshdm.Cells(re.Row, dc).NumberFormat = "hh:mm"

End If

End If

Next i

Next j

End With

Sheets(sht).Activate

Rechercher des sujets similaires à "fonction pas chercher valeurs feuille demandee"