"Erreur objet requis"?

biquet13

XLDnaute Nouveau
Bonjour le forum...

ayant eut les réponse à mon problème précédent, j'ai voulus continuer dans le programme de mon ami...
hors j'ai un petit soucis dans l'éxécution d'une macro..
(Page Tournée..)
je ne vois pas ce qu'il manque dans le code...

merci à tous pour votre aide...

byzz
 

Pièces jointes

  • PlanningBiquet_modif.zip
    17.6 KB · Affichages: 39
G

Guest

Guest
Re : "Erreur objet requis"?

Re bonjour,

et si tu faisais comme ça:

set matin=ActiveSheet.Range("C12:BK12").cells(1,day([ChoixJr]) puisque les cellules de ta plage sont ordonnée de 1 à 31
 

Cousinhub

XLDnaute Barbatruc
Re : "Erreur objet requis"?

Bonjour,
plutôt qu'un .Find, tu peux essayer ceci :

Code:
Sub Manuel()
'Détermination des soignants disponibles / jour considéré
Sheets("Tournées").Range("B8:F49,B60:F101").ClearContents
quantième = CDbl(Format(Range("ChoixJr"), "dd"))
Sheets(CStr(Range("ChoixMois"))).Activate
jr = Cells(12, (quantième * 2) + 1).Address
    matin = Range(jr).Offset(2, 0).Address: Soir = Range(matin).Offset(0, 1).Address
Range(matin).Select
v = 9: h = 2
soignants v, h
Range(Soir).Select
v = 60: h = 2
soignants v, h
End Sub

Sub soignants(v, h)
For Each cell In Range(Cells(14, ActiveCell.Column), Cells(Cells(65536, ActiveCell.Column).End(xlUp)(-4).Row, ActiveCell.Column))
    If cell > 0 Then
        Sheets("Tournée[COLOR="Red"]s[/COLOR]").Cells(v, h) = cell.Value
        Sheets("Tournée[COLOR="Red"]s[/COLOR]").Cells(v - 1, h) = Cells(cell.Row, 1)
        h = h + 1
        If h = 7 Then h = 1: v = v + 14
    End If
Next cell
End Sub

Attention, dans ta sub soignants, il manque un "s" à Tournée
 

biquet13

XLDnaute Nouveau
Re : "Erreur objet requis"?

coucou le forum
bhbh, wilfried42, Hasco...
merci pour ces réponses rapides...

@bhbh : suis en trian d'essayer de tester ta réponse..
mais petit soucis.. en faite
1 : je n'ai que les deux premier soignants qui apparaissent dans la feuille tournée meme si j'en met plusieur a travailler le jour choisit..
2 : dans la feuille pour remplir l'apm, j'ai un décallage d'une cellule vers le haut.. :-( alors que je défini la ligne 60 col 2 pourtant..

@wilfried42 : ce que je cherche a faire en fait, c'est une fois la date de la tournée choisit dans la feuille tournée, que la macro me remplisse la feuille tournée avec le nom des soignants travaillant ce jour et leur nombre d'heure (matin et apm.)

@Hasco : je vais essayer avec ta solution...

merci à vous..;
++

byzz
 

biquet13

XLDnaute Nouveau
Re : "Erreur objet requis"?

re coucou le forum..

@ Hasco : voui sans données c pas évident.. mais j'ai pu tester en changeant certaine valeur ca fonctionne.. merci bcps..

@bhbh : pareil... j'ai testé aussi... et en changeant 60 par 61 dans

Range(Soir).Select
v = 60: h = 2
soignants v, h
End Sub

et -4 par 2 dans

).End(xlUp)(-4).Row

tout se remet a sa place normal..

donc merci à vous..

++
 

biquet13

XLDnaute Nouveau
Re : "Erreur objet requis"?

re coucou...

euh je reviens vers vous car je me trouve devant le même problème qu'au début de mon post..

voici le code..

nomjr = Format(Range("ChoixJr"), "dddd")
Sheets("Param").Range("F:G").ClearContents
With Sheets("Base_Patients").Range("F1:S1")
Set jr = .Find(nomjr, LookIn:=xlValues)
If Not jr Is Nothing Then
Set matin = jr.Offset(1, 0): Set Soir = matin.Offset(0, 1)
End If
End With
Sheets("Base_Patients").Activate
'filtre matin
matin.Select
Selection.AutoFilter Field:=ActiveCell.Column, Criteria1:="X"
Range(Cells(65536, 1).End(xlUp), Cells(3, 1)).Copy Destination:=Sheets("Param").Range("F1")
matin.AutoFilter
'filtre soir
Soir.Select
Selection.AutoFilter Field:=ActiveCell.Column, Criteria1:="X"
Range(Cells(65536, 1).End(xlUp), Cells(3, 1)).Copy Destination:=Sheets("Param").Range("G1")
Soir.AutoFilter
Sheets("Tournée").Activate
MsgBox "FINI"

et je me trouve avec la même erreur...

j'ai bien essayé de changer ce code comme précédement..
mais en faisant ainsi je n'ai plus un noùbre dans la cellule (comme pour la premire partie quantième), mais le nom du jour de la semaine.. et je me trouve donc devant une incompatibilité de style..

si vous avez une petite idée.. ^^

mici beaucoup
byzz
 

Cousinhub

XLDnaute Barbatruc
Re : "Erreur objet requis"?

Bonjour, une autre méthode que le .find :


Code:
Sub Manuel()

'Elaboration des 2 listes des patients dans la feuille liste
Nomjr = Application.Weekday(Range("ChoixJr"), 2)
Sheets("Param").Range("F:G").ClearContents
Sheets("Base_Patients").Activate
Set matin = Cells(6, 2 + (Nomjr * 2)): Set Soir = matin.Offset(0, 1)
'filtre matin
matin.Select
Selection.AutoFilter Field:=ActiveCell.Column, Criteria1:="X"
Range(Cells(65536, 1).End(xlUp), Cells(3, 1)).Copy Destination:=Sheets("Param").Range("F1")
matin.AutoFilter
'filtre soir
Soir.Select
Selection.AutoFilter Field:=ActiveCell.Column, Criteria1:="X"
Range(Cells(65536, 1).End(xlUp), Cells(3, 1)).Copy Destination:=Sheets("Param").Range("G1")
Soir.AutoFilter
Sheets("Tournée").Activate
Range("F1") = 1
MsgBox "FINI"

End Sub
 

biquet13

XLDnaute Nouveau
Re : "Erreur objet requis"?

kikoo le forum... bhbh.. et les autres..

@bhbh : ca fonctionne parfaitement merci beaucoups...je me rappelais plus de cette astuce :"Application.Weekday(Range("ChoixJr"), 2)" effectivement ca aide beaucoups moi je cherchais avec directement le "texte" des jours..

voili voilou..
thx ^^

byzz
 

Statistiques des forums

Discussions
312 500
Messages
2 089 004
Membres
104 003
dernier inscrit
adyady__