"Erreur objet requis"?

  • Initiateur de la discussion Initiateur de la discussion biquet13
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

biquet13

Guest
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

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
 
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
 
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..

++
 
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
295
Retour