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
 

Fichiers joints

Silverjet59

XLDnaute Nouveau
Re : find sur calendriers

re
voici le code que j ai essayer (avec l aide de l enregistreur de macro)mais sans résultats

pouvez vous m aider SVP

merci
 

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
 

Silverjet59

XLDnaute Nouveau
Re : find sur calendriers

bonjour et merci

il y a que le mois de janvier qui fonctionne ?

que dois je modifier pour que les autres mois fonctionnent ?
 

Silverjet59

XLDnaute Nouveau
Re : find sur calendriers

desolé j ai compris mon erreur sa fonctionne correctement (le bug venait de mes fin de mois a "cheval " sur 2 grilles


mille MERCI
 

Silverjet59

XLDnaute Nouveau
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 !

comment puis je faire?

SVP

MERCI
 

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


Haut Bas