find sur calendriers

Silverjet59

XLDnaute Nouveau
bonjour a tous

je suis perdu pouvez vous m aidez?

voila si possible ,mon souhait serai que lorsque je met une valeur dans une case (listes deroulantes)de la "feuil1" celle ci ce reporte dans la feuille annuel sur l une des lignes feuil1 a la date correspondante .

voici mon fichier avec 2 exemples



merci de votre aide
 

Pièces jointes

  • rttv2.zip
    169.7 KB · Affichages: 92
  • rttv2.zip
    169.7 KB · Affichages: 94
  • rttv2.zip
    169.7 KB · Affichages: 91

Silverjet59

XLDnaute Nouveau
Re : find sur calendriers

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

val_a_trouver = Sheets("Feuil3").ActiveCell.Offset(0, -1).Value


Sheets("Feuil3").ActiveCell.Select
Selection.Copy

Sheets("annuel").Select
Cells.Find(What:=val_a_trouver, After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

Range.ActiveCell.Offset(-1, 0).Select
Application.CutCopyMode = True

End Sub
 

Docmarti

XLDnaute Occasionnel
Re : find sur calendriers

Voici une recherche par itération FOR...NEXT.

Avec FIND, il faudrait modifier le format des dates sur la feuille "Annuel". Et c'est 10 fois plus lent avec FIND.

Cordialement.

Docmarti

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
t = Timer

What = Target.Offset(0, -1).Value
 
Set f = Worksheets("annuel")
 
col1 = "F"
col2 = "AP"

Ligne = 11
For i = 1 To 12
 
For kk = f.Cells(Ligne, col1).Column To f.Cells(Ligne, col2).Column
 
If f.Cells(Ligne, kk).Value = What Then
  
 Set result = f.Cells(Ligne, kk)
 For j = result.Row + 2 To result.Row + 9
  
If UCase(f.Cells(j, "C").Text) = UCase(Target.Parent.Name) Then
 
 f.Cells(j, result.Column).Value = Target.Value
 ok = True: Exit For
End If
Next
If ok = False Then
 MsgBox Target.Parent.Name, , "Pas trouve"
Exit Sub
Else
 
'MsgBox Target.Parent.Name, , "OK Trouve"

Exit For
End If
End If

Next

Ligne = Ligne + 14
If ok = True Then Exit For
Next

duree = Timer - t

If ok = False Then
 MsgBox What, , "Pas trouve"
End If
 
End Sub
 

Docmarti

XLDnaute Occasionnel
Re : find sur calendriers

oups j ai quand même trouvé un problème, lorsque je protège la feuil "annuel" plus rien ne vas !

...

Bonjour.

UserInterfaceOnly est un argument facultatif de la méthode Protect. Cet argument permettra à toutes les macros de modifier la feuille de travail protégée avec ou sans mot de passe.

Code:
Sub proteger()
  Sheets("Annuel").Protect Password:="MonSecret", UserInterFaceOnly:=True
End Sub

Cordialement.

Docmarti
 

Discussions similaires

Réponses
7
Affichages
485

Statistiques des forums

Discussions
311 725
Messages
2 081 939
Membres
101 844
dernier inscrit
pktla