Fonction FIND et date

Bonjour,

Je cherche à écrire un code qui sélectionne une variable date (jour_aujourdhui) dans un classeur et qui va chercher cette variable dans un autre classeur.

Et impossible qu'il me retrouve cette variable...

Je pense que c'est un problème de format de date...

Mais je sèche

Une idée...

PS en pj le fichier avec la macro

12zs126-quot.zip (11.24 Ko)

Bonsoir Filou, bonsoir le forum,

Difficile de comprendre un code pour deux fichiers quand tu n'en envoies qu'un seul. D'autant plus difficile que le code qui y figure propose d'ouvrir ce propre fichier ?!...

Je pense que ce code doit se trouver en réalité dans l'autre fichier : 2- BProcess_Dématérialisation.xls. En tous c'est comme ça que j'ai compris.

J'ai repris ton code en supprimant tous les Select inutiles qui ne font que ralentir l'exécution du code. Il faut absolument que tu le fasses aussi dans tes codes. Une fois que les variables sont déclarées et définies ces Select sont très simple à supprimer.

Tu me diras si c'est ça que tu voulais (code à placer dans le fichier 2- BProcess_Dématérialisation.xls) :

Sub Macro1()
Dim CS As Workbook 'déclare la variable CD (Classeur Destination)
Dim OS As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CD As Workbook 'déclare la variable CS (Classeur Source)
Dim OD As Worksheet 'déclare la variable OS (Onglet Source)
Dim NL As Integer 'déclare la variable NL (Numéro de Ligne)
Dim AJD As Date 'décalre la variable ADJ (AuJourD'hui)
Dim T As Integer 'déclare la variable T (Total)
Dim Localise As Range 'déclare la variable Localise

Set CD = ThisWorkbook 'définit la calsseur destination CD
Set OD = CD.Sheets(1) 'définit l'onglet destination OD (à adapter)
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
Set CS = Workbooks("ZS126 QUOT.xls") 'définit la classeur source (génère une erreur si ce claseur n'est pas ouvert)
If Err <> 0 Then 'condition : si une erreur a été générée
    Err.Clear 'supprime l'erreur
    'Workbooks.Open "O:\CM-PROC\FICHIERS TEMPORAIRES\ZS126 QUOT.xls"'ouvre le classeur "ZS1236 QUOT.xls"
    Workbooks.Open "C:\Users\Robert\Documents\Poubelle\ZS126 QUOT.xls"
    Set CS = ActiveWorkbook 'définit la classeur source CS
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
Set OS = CS.Sheets(1) 'définit l'onglet source OS (à adapter)
OS.Range("I1").Value = "Date/Heure" 'érit en I1 de l'onglet source OS
NL = 2 'initialise le numéro de ligne NL
While OS.Cells(NL, 1) <> "" 'tant que la cellule ligne NL colonne 9 (=I) n'est pas vide
    OS.Cells(NL, 9).FormulaR1C1 = "=RC[-1]+RC[-5]" 'place la formule dans la cellule
    NL = NL + 1 'incrément le numéro de ligne NL
Wend 'boucle
OS.Columns(9).NumberFormat = "dd/mm/yyyy hh:mm:ss" 'définit le format de la colonne 9 (=I)
OS.Range("J1").Value = Date 'renvoie la date dans J1
AJD = DateSerial(Year(Date), Month(Date), Day(Date)) 'définit la variable AJD (numéro de série de date pour la recherche)
OS.Range("K1").Value = Date - 1 'renvoie la dante moins un jour dans K1 de l'onglet OS
OS.Range("L1").Value = "19:00:00" 'écrit dans L1 de l'onglet OS
OS.Range("M1").FormulaR1C1 = "=RC[-2]+RC[-1]" 'place la formule dans M1 de l'ongelt OS
OS.Range("M1").NumberFormat = "dd/mm/yyyy hh:mm:ss" 'définit le format de M1 de l'onglet OS
NL = 2 'initialise le numéro de ligne NL
While OS.Cells(NL, 1) <> "" 'tant que la cellule ligne NL colonne 1 (=A) n'est pas vide
    OS.Cells(NL, 10).FormulaR1C1 = "=+IF(RC[-1]>R1C13,1,0)" 'place la formule dans la cellule en colonne 10 (=J)
    NL = NL + 1 'incrément NL
Wend 'boucle
OS.Cells(NL + 2, 10).FormulaR1C1 = "=SUM(R" & NL & "C:R2C10)" 'place la formule de total
T = OS.Cells(NL + 2, 10).Value 'définit la variable T
Set Localise = OD.Cells.Find(AJD, , xlFormulas, xlWhole) 'définit la variable localise
If Not Localise Is Nothing Then 'condition : si au moins une occurrence est trouvée
    CD.Activate 'active le classeur destination CD
    OD.Select 'sélectionne l'onglet OD
    Localise.Offset(0, 1).Value = T 'revoie le total T dans la cellue adjacente à l'occurrence trouvée
Else 'sinon
    MsgBox "date non trouvée !" 'message
End If 'fin de la condition
End Sub

Merci beaucoup pour tes conseils et le code que tu m'as fait suivre.

Rechercher des sujets similaires à "fonction find date"