Alimenté un classeur en VBA avec fonction find

Bonjour le forum,

Voici mon 1er post sur le forum Excel-Pratique

Après x recherche, test ect...je post mon problème

le classeur"A" va servir à alimenter d'autre classeur dans cette exemple "Dupont" en fonction du N°semaine

voir fichier joint pour mieux comprendre, mais voilà le problème le code fait une recherche sur toute les feuilles du classeur pour trouver le N°semaine et l'alimenter par colonne, jusqu'à là pas souci, sauf qu'un N°de semaine peut être à cheval sur deux mois, et code lui s'arrête sur le 1er numéro trouvé.

donc ce que j'essaye de faire, au lieu que le code parcours toutes les feuilles, je voudrais qu'il trouve le N° de semaine uniquement sur une feuille en fonction de la date. Voici le code déjà présent

Option Explicit
Sub Bouton1_Clic()
    Dim Desti As Workbook, R As Range, Chemin$, Nom$, sh As Worksheet
    Dim Semaine%, c As Range, Cnom As Range, mois$
    Application.ScreenUpdating = False
    Chemin = ThisWorkbook.Path & "\Frais\"
    Nom = Cells(ActiveCell.Row, 1).Value
    R = Cells(ActiveCell.Row, 4)  ' colonne date
    mois = datepart("m", R)
    Set Cnom = Selection
    Semaine = Cnom.Offset(0, 4)

    Set Desti = Workbooks.Open(Chemin & Nom & ".xlsx")
    For Each sh In Desti.Sheets
        Set c = sh.Range("B9:F9").Find(Semaine, LookIn:=xlValues)
        If Not c Is Nothing Then  

           c.Offset(2, 0) = c.Offset(2, 0) + Cnom.Offset(0, 6)
            c.Offset(6, 0) = c.Offset(6, 0) + Cnom.Offset(0, 7)
            c.Offset(9, 0) = c.Offset(9, 0) + Cnom.Offset(0, 8)

            Exit For
        End If
    Next sh
    Application.ScreenUpdating = True
End Sub

Merci de m'avoir lu et en espérant que vous puissiez m'aider

Bonne soirée à tous

48test.zip (31.86 Ko)

Bonjour

A essayer

77manu13.zip (37.36 Ko)

Bonsoir Banzai64,

Je viens de regarder ton code et de le tester.

je suis désolé, mais le problème reste le même dans l'exemple la semaine 13 et à cheval entre mars et avril.

je n’ai pas du être assez clair dans mes explications

ce que je souhaite c'est de pouvoir alimenter le classeur "Nom" exemple "Dupont" dans ce cas dans la feuille du mois en fonction de la date du Classeur"A"colonne F et en fonction de la colonne semaine

Dans ton code comme dans le mien si je sélectionne la ligne dupont en date du 02 avril semaine 13, les donnée vont dans la feuille MARS colonne semaine 13 au lieu de Avril colonne semaine 13

le 2 avril et en semaine 13 et non en semaine 14 comme mis dans ton fichier en retour

Merci d'avoir de ton temps pour m'aider à résoudre le problème

A+

manu

Bonjour

Désolé j'avais mal compris

Je croyais qu'il fallait trouver le mois en fonction de la semaine, mais dans ce cas c'est trouver le mois en fonction de la .... date

Remets la semaine 13 dans la colonne E

Ensuite remplace dans la macro cette ligne

Onglet = Format(Semaine * 7 + CDate(Year(Date) & ",1,3") - Weekday(CDate(Year(Date) & ",1,3")) - 5, "MMMM")

Par cette ligne

Onglet = Format(Cnom.Offset(0, 5), "MMMM")

Cela devrait correspondre à ce que tu cherches

Bonne nuit

RE,

Yesss, ça fonctionne nickel

Merci

Bonne nuit

A+

Manu

Rechercher des sujets similaires à "alimente classeur vba fonction find"