XL 2019 exécution macro a l ouverture du classeur

Quicksland

XLDnaute Occasionnel
Bonsoir le forum ;)

Dans mon fichier ci joint j'ai plusieurs macros

En feuil1 (lundi) , feuil4 (mardi) , feuil5 (mercredi) , feuil6 (jeudi) et feuil7 (vendredi)

je souhaiterai que toutes les macros s'active a l'ouverture du fichier même si le fichier source est fermer

Merci pour votre aide 👍
 

Pièces jointes

  • FICHE PIC NIC 1 S P.xlsm
    530.2 KB · Affichages: 11
Solution
Re Bonjour,
Voici une nouvelle PJ réaliste par rapport à votre besoin.
1- J'ai viré toutes les macros partout. Elles n'ont rien à faire dans les feuilles mais dans un module. En PJ elles sont dans le module "Mise_A_Jour"
2- Dans ThisworkBook il y a la macro Workbook_Open qui s'exécute à l'ouverture du fichier. Si pas de bug vous n'avez pas à y toucher. ( NB j'ai mis le On error goto Fin en commentaires pour la mise au point )
3- Dans le module "Mise_A_Jour", il y a la macro "UpdateSheet" qui fera réellement la mise à jour d'une feuille. Vous n'avez pas à y toucher car elle est générique, elle recevra les données de l'autre module "Mise_a_jour_onglets"
4- J'ai construit la macro "Mise_a_jour_onglets" de façon structurée. Pour la...

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir à toutes & à tous, bonsoir @Quicksland .
Il faut que tu précises le chemin du fichier si celui-ci n'est pas ouvert du genre :

Chemin ="C:\Nom du chemin Complet avec slash de fin \"
Classeur= "Mon classeur avec extention .xlsx"
Feuille ="Nom de la feuille"
Adresse ="D6"

et que tu écrives la formule :
Activecell.Formula = "='" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & Adresse
sans oublier les ' et les [ ]

Avec une de tes formules
Chemin ="C:\Users\LAURENT\etc ...\"
Classeur="1 CAMUS LA RIBAMBELLE 1.xlsm"
Feuille ="PRINTEMPS"
For i = 0 To UBound(Tablo) Step 2
Range(Tablo(i)).formula = "='" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & (Tablo(i + 1))
Next i


Amicalement
Alain
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Quicksland, At the one,
Un essai en PJ. A noter :
1- Tout est dans ThisWorkbook/Workbook_Open
2- Seul le Mardi est mis à jour avec la macro du post Lien #4.
Il suffit de compléter les autres jours.
3- Les macros dans les feuilles Lundi à Vendredi doivent être supprimées, elles ne sont plus utiles
4- Faire très attention aux nom de fichiers et onglets ( présence d'espaces superflus )
5- J'ai mis deux options :
Option1 : Avec demande du fichier à lire, si celui ci change de nom ou d'emplacement (actif dans la macro donnée)
Option2 : Avec chemin et nom figés si ça reste immuable. ( inhibé dans la PJ )
6- Ne pas toucher à Application.EnableEvents = False car le fichier cible a une Workbook_Open qui s'exécuterait à l'ouverture.
Tout ça avec :
VB:
Private Sub Workbook_Open()
    On Error GoTo Fin
    ' Mémorisation fichier courant
    CeFichier = ThisWorkbook.Name
    ' On fige les events car ds le fichier cible il y a un Workbook_Open qui ne doit pas s'executer
    Application.EnableEvents = False
    ' Option1 -----------------------------------------------------------------
    ' Demande d'ouverture du fichier cible si son emplacement ou nom change
    Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
    If Fichier = False Then
        Application.EnableEvents = True
        Exit Sub
    Else
        Workbooks.Open Filename:=Fichier
    End If
    ' Option2 -------------------------------------------------------------------
    ' Ou remplacer tout ça par le nom du fichier à lire si son emplacement est connu et ne bougera pas
    'Fichier = "C:\Users\PC_PAPA\Desktop\1 CAMUS LA RIBAMBELLE (99).xlsm"
    'Workbooks.Open Filename:=Fichier
    '----------------------------------------------------------------------------
    ' On récupère qu le nom du fichier sans son chemin
    NomFichier = Split(Fichier, "\"): NomFichier = NomFichier(UBound(NomFichier))
    ' On active le fichier d'écriture
    Windows(CeFichier).Activate
    ' On fige l'écran
    Application.ScreenUpdating = False
    ' Lance les mises à jour
    Lundi
    Mardi
    Mercredi
    Jeudi
    Vendredi
    ' Fermeture fichier cible sans enregistrer
    Workbooks(NomFichier).Close SaveChanges:=False
    ' Enregistrement du fichier courant
    ActiveWorkbook.Save
    ' Message de sortie
    MsgBox "Mise à jour terminée."
Fin:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
 

Pièces jointes

  • FICHE PIC NIC 1 S P (4).xlsm
    576.8 KB · Affichages: 9

Quicksland

XLDnaute Occasionnel
Bonsoir à toutes & à tous, bonsoir @Quicksland .
Il faut que tu précises le chemin du fichier si celui-ci n'est pas ouvert du genre :

Chemin ="C:\Nom du chemin Complet avec slash de fin \"
Classeur= "Mon classeur avec extention .xlsx"
Feuille ="Nom de la feuille"
Adresse ="D6"

et que tu écrives la formule :
Activecell.Formula = "='" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & Adresse
sans oublier les ' et les [ ]

Avec une de tes formules
Chemin ="C:\Users\LAURENT\etc ...\"
Classeur="1 CAMUS LA RIBAMBELLE 1.xlsm"
Feuille ="PRINTEMPS"
For i = 0 To UBound(Tablo) Step 2
Range(Tablo(i)).formula = "='" & Chemin & "[" & Classeur & "]" & Feuille & "'!" & (Tablo(i + 1))
Next i


Amicalement
Alain
Bonjour ArtTheOne ,

Merci pour avoir pris le temps de trouver une solution

J'avoue être dépasser par la complexité du projet ...

merci pour l'aide 👍
 

Quicksland

XLDnaute Occasionnel
Bonjour Quicksland, At the one,
Un essai en PJ. A noter :
1- Tout est dans ThisWorkbook/Workbook_Open
2- Seul le Mardi est mis à jour avec la macro du post Lien #4.
Il suffit de compléter les autres jours.
3- Les macros dans les feuilles Lundi à Vendredi doivent être supprimées, elles ne sont plus utiles
4- Faire très attention aux nom de fichiers et onglets ( présence d'espaces superflus )
5- J'ai mis deux options :
Option1 : Avec demande du fichier à lire, si celui ci change de nom ou d'emplacement (actif dans la macro donnée)
Option2 : Avec chemin et nom figés si ça reste immuable. ( inhibé dans la PJ )
6- Ne pas toucher à Application.EnableEvents = False car le fichier cible a une Workbook_Open qui s'exécuterait à l'ouverture.
Tout ça avec :
VB:
Private Sub Workbook_Open()
    On Error GoTo Fin
    ' Mémorisation fichier courant
    CeFichier = ThisWorkbook.Name
    ' On fige les events car ds le fichier cible il y a un Workbook_Open qui ne doit pas s'executer
    Application.EnableEvents = False
    ' Option1 -----------------------------------------------------------------
    ' Demande d'ouverture du fichier cible si son emplacement ou nom change
    Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
    If Fichier = False Then
        Application.EnableEvents = True
        Exit Sub
    Else
        Workbooks.Open Filename:=Fichier
    End If
    ' Option2 -------------------------------------------------------------------
    ' Ou remplacer tout ça par le nom du fichier à lire si son emplacement est connu et ne bougera pas
    'Fichier = "C:\Users\PC_PAPA\Desktop\1 CAMUS LA RIBAMBELLE (99).xlsm"
    'Workbooks.Open Filename:=Fichier
    '----------------------------------------------------------------------------
    ' On récupère qu le nom du fichier sans son chemin
    NomFichier = Split(Fichier, "\"): NomFichier = NomFichier(UBound(NomFichier))
    ' On active le fichier d'écriture
    Windows(CeFichier).Activate
    ' On fige l'écran
    Application.ScreenUpdating = False
    ' Lance les mises à jour
    Lundi
    Mardi
    Mercredi
    Jeudi
    Vendredi
    ' Fermeture fichier cible sans enregistrer
    Workbooks(NomFichier).Close SaveChanges:=False
    ' Enregistrement du fichier courant
    ActiveWorkbook.Save
    ' Message de sortie
    MsgBox "Mise à jour terminée."
Fin:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Bonjour Sylvanu ;)

Tout d'abord un grand merci de t'être encore penché sur mon problème ...

J'avoue être dépassé par la complexité du projet !!!

Je pensai qu'avec des bous de code récupéré de-ci delà j'arriverai a obtenir ce que je souhaitai ...

Pour revenir en arrière la première macro a été faite avec l'enregistreur de macro ce qui ma donné

un nombre importante de ligne d'où mon premier post puis j'ai pris modèle sur le tien pour

continuer ce qui ma donné celui que tu trouves sur le fichier "PIC NIC 1SP " dans Visual basic c'est sur la feuil 1 (lundi) pour l'instant il y a que celui ci de complet

Pour ce qui est du fichier que tu as mis en PJ j'avoue être perdu ...

Pourtant je suis convaincu qu'il y a une solution !

je te remercie pour ton aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Tout est dans Thisworkbook.
La macro Workbook_Open se lance à l'ouverture du fichier. Normalement ( hors bugs ) vous n'avez pas à y toucher. Sauf peut être si vous choisissez l'option ouverture automatique du fichier.
Dans ce cas vous m'envoyer l'emplacement exact du fichier ( chez moi, c'est du genre "C:\Users\PC_PAPA\Desktop\1 CAMUS LA RIBAMBELLE (99).xlsm" )
A la fin vous avez 5 macros appelées Lundi, Mardi, Mercredi, Jeudi et Vendredi pour les mises à jour.
J'ai mis du code que pour Mardi, il suffit de faire pareil pour les autres jours.
En claire, par exemple recopier le contenu votre macro Sub Données1() dans la macro Sub Lundi() ...
VB:
End Sub
Sub Mardi()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "B13", "I5:I6", "E14", "F7:I8", "M6", "H9:I10", "E15", _
                "H11:I12", "E16", "D5:E6", "E10", "D21:G21", "I3", "Q2:Q4", "B19", _
                "Q5:Q6", "E20", "N7:Q8", "M6", "P9:Q10", "E21", "P11:Q12", "E22", _
                "L5:M6", "E10", "L21:O21", "I3", "Y2:Y4", "B25", "Y5:Y6", "E26", _
                "V7:Y8", "M6", "X9:Y10", "E27", "X11:Y12", "E28", "T5:U6", "E10", _
                "T21:W21", "I3", "AG2:AG4", "B31", "AG5:AG6", "E32", "AD7:AG8", _
                "M6", "AF9:AG10", "E33", "AF11:AG12", "E34", "AB5:AC6", "E10", _
                "AB21:AE21", "I3")
    ' Choix de la feuille de la cible à lire
    Set Chemin = Workbooks(NomFichier).Worksheets("PRINTEMPS")
    ' Dans la feuille désirée du fichier courant
    With Sheets("MARDI")
        For i = 0 To UBound(Tablo) Step 2
            .Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
        Next i
    End With
End Sub
Sub Mercredi()

End Sub
Sub Jeudi()

End Sub
Sub Vendredi()

End Sub
J'avoue être dépassé par la complexité du projet !!!
Vous comprenez pourquoi je préférais un nouveau post plutôt que la suite du premier, ça n'a rien à voir.:)
 

Quicksland

XLDnaute Occasionnel
Bonsoir,
Tout est dans Thisworkbook.
La macro Workbook_Open se lance à l'ouverture du fichier. Normalement ( hors bugs ) vous n'avez pas à y toucher. Sauf peut être si vous choisissez l'option ouverture automatique du fichier.
Dans ce cas vous m'envoyer l'emplacement exact du fichier ( chez moi, c'est du genre "C:\Users\PC_PAPA\Desktop\1 CAMUS LA RIBAMBELLE (99).xlsm" )
A la fin vous avez 5 macros appelées Lundi, Mardi, Mercredi, Jeudi et Vendredi pour les mises à jour.
J'ai mis du code que pour Mardi, il suffit de faire pareil pour les autres jours.
En claire, par exemple recopier le contenu votre macro Sub Données1() dans la macro Sub Lundi() ...
VB:
End Sub
Sub Mardi()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "B13", "I5:I6", "E14", "F7:I8", "M6", "H9:I10", "E15", _
                "H11:I12", "E16", "D5:E6", "E10", "D21:G21", "I3", "Q2:Q4", "B19", _
                "Q5:Q6", "E20", "N7:Q8", "M6", "P9:Q10", "E21", "P11:Q12", "E22", _
                "L5:M6", "E10", "L21:O21", "I3", "Y2:Y4", "B25", "Y5:Y6", "E26", _
                "V7:Y8", "M6", "X9:Y10", "E27", "X11:Y12", "E28", "T5:U6", "E10", _
                "T21:W21", "I3", "AG2:AG4", "B31", "AG5:AG6", "E32", "AD7:AG8", _
                "M6", "AF9:AG10", "E33", "AF11:AG12", "E34", "AB5:AC6", "E10", _
                "AB21:AE21", "I3")
    ' Choix de la feuille de la cible à lire
    Set Chemin = Workbooks(NomFichier).Worksheets("PRINTEMPS")
    ' Dans la feuille désirée du fichier courant
    With Sheets("MARDI")
        For i = 0 To UBound(Tablo) Step 2
            .Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
        Next i
    End With
End Sub
Sub Mercredi()

End Sub
Sub Jeudi()

End Sub
Sub Vendredi()

End Sub

Vous comprenez pourquoi je préférais un nouveau post plutôt que la suite du premier, ça n'a rien à voir.:)
Re,

Oui je comprend ;)
en fait Mardi n'est pas de cette longueur ... il est en cour de construction
par contre lundi est fini "voir ci dessous "


VB:
Sub Données1()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "B13", "I5:I6", "E14", "F7:I8", "M6", "H9:I10", "E15", "H11:I12", "E16", "D5:E6", "E10", "D21:G21", "I3", _
                  "Q2:Q4", "B19", "Q5:Q6", "E20", "N7:Q8", "M6", "P9:Q10", "E21", "P11:Q12", "E22", "L5:M6", "E10", "L21:O21", "I3", _
                  "Y2:Y4", "B25", "Y5:Y6", "E26", "V7:Y8", "M6", "X9:Y10", "E27", "X11:Y12", "E28", "T5:U6", "E10", "T21:W21", "I3", _
    "AG2:AG4", "B31", "AG5:AG6", "E32", "AD7:AG8", "M6", "AF9:AG10", "E33", "AF11:AG12", "E34", "AB5:AC6", "E10", "AB21:AE21", "I3")
          
        
    Set Chemin = Workbooks("1 CAMUS LA RIBAMBELLE 1.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données2()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I49:I51", "B13", "I52:I53", "E14", "F54:I55", "M6", "H56:I57", "E15", "H58:I59", "E16", "D52:E53", "E10", "D68:G68", "I3", _
                  "Q49:Q51", "B19", "Q52:Q53", "E20", "N54:Q55", "M6", "P56:Q57", "E21", "P58:Q59", "E22", "L52:M53", "E10", "L68:O68", "I3", _
                  "Y49:Y51", "B25", "Y52:Y53", "E26", "V54:Y55", "M6", "X56:Y57", "E27", "X58:Y59", "E28", "T52:U53", "E10", "T68:W68", "I3", _
    "AG49:AG51", "B31", "AG52:AG53", "E32", "AD54:AG55", "M6", "AF56:AG57", "E33", "AF58:AG59", "E34", "AB52:ACU53", "E10", "AB68:AE68", "I3")
          
        
    Set Chemin = Workbooks("2 DAUDET LA SALAMANDRE 2.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données3()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I97:I98", "B13", "I99:I100", "E14", "F101:I102", "M6", "H103:I104", "E15", "H105:I106", "E16", "D99:E100", "E10", "D115:G115", "I3", _
                  "Q97:Q98", "B19", "Q99:Q100", "E20", "N101:Q102", "M6", "P103:Q104", "E21", "P105:Q106", "E22", "L99:M100", "E10", "L115:O115", "I3", _
                  "Y97:Y98", "B25", "Y99:Y100", "E26", "V101:Y102", "M6", "X103:Y104", "E27", "X105:Y106", "E28", "T99:U100", "E10", "T115:W115", "I3", _
    "AG97:AG98", "B31", "AG99:AG100", "E32", "AD101:AG102", "M6", "AF103:AG104", "E33", "AF105:AG106", "E34", "AB99:ACU100", "E10", "AB115:AE115", "I3")
          
        
    Set Chemin = Workbooks("3 JEAN MOULIN LES MARMOUZETS 3.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données4()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I143:I145", "B13", "I146:I147", "E14", "F148:I149", "M6", "H150:I151", "E15", "H152:I153", "E16", "D146:E147", "E10", "D162:G162", "I3", _
                  "Q143:Q145", "B19", "Q146:Q147", "E20", "N148:Q149", "M6", "P150:Q151", "E21", "P152:Q153", "E22", "L146:M147", "E10", "L162:O162", "I3", _
                  "Y143:Y145", "B25", "Y146:Y147", "E26", "V148:Y149", "M6", "X150:Y151", "E27", "X152:Y153", "E28", "T146:U147", "E10", "T162:W162", "I3", _
    "AG143:AG145", "B31", "AG146:AG147", "E32", "AD148:AG149", "M6", "AF150:AG151", "E33", "AF152:AG153", "E34", "AB146:ACU147", "E10", "AB162:AE162", "I3")
          
        
    Set Chemin = Workbooks("4 NOTRE DAME DU THIL LA BUISSONNIERE 4.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données5()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I190:I192", "B13", "I193:I194", "E14", "F195:I196", "M6", "H197:I198", "E15", "H199:I200", "E16", "D193:E194", "E10", "D209:G209", "I3", _
                  "Q190:Q192", "B19", "Q193:Q194", "E20", "N195:Q196", "M6", "P197:Q198", "E21", "P199:Q200", "E22", "L193:M194", "E10", "L209:O209", "I3", _
                  "Y190:Y192", "B25", "Y193:Y194", "E26", "V195:Y196", "M6", "X197:Y198", "E27", "X199:Y200", "E28", "T193:U194", "E10", "T209:W209", "I3", _
                "AG190:AG192", "B31", "AG193:AG194", "E32", "AD195:AG196", "M6", "AF197:AG198", "E33", "AF199:AG200", "E34", "AB193:ACU194", "E10", "AB209:AE209", "I3")
          
        
    Set Chemin = Workbooks("5 LA GRENOUILLERE CŒUR DE MOME 5.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données6()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I237:I239", "B13", "I240:I241", "E14", "F242:I243", "M6", "H244:I245", "E15", "H246:I247", "E16", "D240:E241", "E10", "D256:G256", "I3", _
                  "Q237:Q239", "B19", "Q240:Q241", "E20", "N242:Q243", "M6", "P244:Q245", "E21", "P246:Q247", "E22", "L240:M241", "E10", "L256:O256", "I3", _
                  "Y237:Y239", "B25", "Y240:Y241", "E26", "V242:Y243", "M6", "X244:Y245", "E27", "X246:Y247", "E28", "T240:U241", "E10", "T256:W256", "I3", _
                "AG237:AG239", "B31", "AG240:AG241", "E32", "AD242:AG243", "M6", "AF244:AG245", "E33", "AF246:AG247", "E34", "AB240:ACU241", "E10", "AB256:AE256", "I3")
          
        
    Set Chemin = Workbooks("6 SAINT LUCIEN CŒUR DE MOME 6.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données7()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I284:I286", "B13", "I287:I288", "E14", "F289:I290", "M6", "H291:I292", "E15", "H293:I294", "E16", "D287:E288", "E10", "D303:G303", "I3", _
                  "Q284:Q286", "B19", "Q287:Q288", "E20", "N289:Q290", "M6", "P291:Q292", "E21", "P293:Q294", "E22", "L287:M288", "E10", "L303:303", "I3", _
                  "Y284:Y286", "B25", "Y287:Y288", "E26", "V289:Y290", "M6", "X291:Y292", "E27", "X293:Y294", "E28", "T287:U288", "E10", "T303:W303", "I3", _
                "AG284:AG286", "B31", "AG287:AG288", "E32", "AD289:AG290", "M6", "AF291:AG292", "E33", "AF293:AG294", "E34", "AB287:ACU288", "E10", "AB303:AE303", "I3")
          
        
    Set Chemin = Workbooks("7 LES ALOUETTES LE PETIT PRINCE 7.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données8()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I331:I333", "B13", "I334:I335", "E14", "F336:I337", "M6", "H338:I339", "E15", "H340:I341", "E16", "D334:E335", "E10", "D350:G350", "I3", _
                  "Q331:Q333", "B19", "Q334:Q335", "E20", "N336:Q337", "M6", "P338:Q339", "E21", "P340:Q341", "E22", "L334:M335", "E10", "L350:350", "I3", _
                  "Y331:Y333", "B25", "Y334:Y335", "E26", "V336:Y337", "M6", "X338:Y339", "E27", "X340:Y341", "E28", "T334:U335", "E10", "T350:W350", "I3", _
                "AG331:AG333", "B31", "AG334:AG335", "E32", "AD336:AG337", "M6", "AF338:AG339", "E33", "AF340:AG341", "E34", "AB334:ACU335", "E10", "AB350:AE350", "I3")
          
        
    Set Chemin = Workbooks("8 JULES FERRY ASTUCE 8.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données9()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I378:I380", "B13", "I381:I382", "E14", "F383:I384", "M6", "H385:I386", "E15", "H387:I388", "E16", "D381:E382", "E10", "D397:G397", "I3", _
                  "Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:397", "I3", _
                  "Y378:Y380", "B25", "Y381:Y382", "E26", "V383:Y384", "M6", "X385:Y386", "E27", "X387:Y388", "E28", "T381:U382", "E10", "T397:W397", "I3", _
                "AG378:AG380", "B31", "AG381:AG382", "E32", "AD383:AG384", "M6", "AF385:AG386", "E33", "AF387:AG388", "E34", "AB381:ACU382", "E10", "AB397:AE397", "I3")
          
        
    Set Chemin = Workbooks("9 PRE MARTINET DEMAT 9.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub

Sub Données10()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I425:I427", "B13", "I428:I429", "E14", "F430:I431", "M6", "H432:I433", "E15", "H434:I435", "E16", "D428:E429", "E10", "D444:G444", "I3", _
                  "Q425:Q427", "B19", "Q428:Q429", "E20", "N430:Q431", "M6", "P432:Q433", "E21", "P434:Q435", "E22", "L428:M429", "E10", "L444:444", "I3", _
                  "Y425:Y427", "B25", "Y428:Y429", "E26", "V430:Y431", "M6", "X432:Y433", "E27", "X434:Y435", "E28", "T428:U429", "E10", "T444:W444", "I3", _
                "AG425:AG427", "B31", "AG428:AG429", "E32", "AD430:AG431", "M6", "AF432:AG433", "E33", "AF434:AG435", "E34", "AB428:ACU429", "E10", "AB444:AE444", "I3")
          
        
    Set Chemin = Workbooks("10 MARCEL PAGNOL LES CIGALES 10.xlsm").Worksheets("PRINTEMPS ")
    For i = 0 To UBound(Tablo) Step 2
        Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
    Next i
End Sub


PIC NIC SP 1 va chercher les infos dans dix classeurs diffèrent et ceci sur cinq jours ...

J'ai bien ouvert le fichier que tu as mis ce matin quand je l'ouvre l'explorateur windows s'ouvre pour allez chercher un classeur ce que je fait mais aucune mise a jour se produit

Merci pour ton aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai bien ouvert le fichier que tu as mis ce matin quand je l'ouvre l'explorateur windows s'ouvre pour allez chercher un classeur ce que je fait mais aucune mise a jour se produit
Mais avez vous mis le contenu de vos macros au bon endroit ?
Tout le contenu de vos macros doivent être dans Sub Lundi(), Sub Mardi() .... Sub Vendredi()
Mais ne copier que le Tablo car le reste change.
Par exemple pour Mardi :
VB:
Sub Mardi()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire


    ' Mettre ici votre tableau pour Mardi.'
    Tablo = Array("I2:I4" .....")
    

    ' Choix de la feuille de la cible à lire
    Set Chemin = Workbooks(NomFichier).Worksheets("PRINTEMPS")
    ' Dans la feuille désirée du fichier courant
    With Sheets("MARDI")
        For i = 0 To UBound(Tablo) Step 2
            .Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
        Next i
    End With
End Sub
et changez éventuellement Worksheets("PRINTEMPS") avec le bon nom de l'onglet à lire. Tout dépend de vos fichiers à lire, comment ils sont organisés.
 

Quicksland

XLDnaute Occasionnel
Mais avez vous mis le contenu de vos macros au bon endroit ?
Tout le contenu de vos macros doivent être dans Sub Lundi(), Sub Mardi() .... Sub Vendredi()
Mais ne copier que le Tablo car le reste change.
Par exemple pour Mardi :
VB:
Sub Mardi()
    ' Tableau est organisé avec Plage à écrire, virgule, Plage à lire


    ' Mettre ici votre tableau pour Mardi.'
    Tablo = Array("I2:I4" .....")
   

    ' Choix de la feuille de la cible à lire
    Set Chemin = Workbooks(NomFichier).Worksheets("PRINTEMPS")
    ' Dans la feuille désirée du fichier courant
    With Sheets("MARDI")
        For i = 0 To UBound(Tablo) Step 2
            .Range(Tablo(i)) = Chemin.Range(Tablo(i + 1))
        Next i
    End With
End Sub
et changez éventuellement Worksheets("PRINTEMPS") avec le bon nom de l'onglet à lire. Tout dépend de vos fichiers à lire, comment ils sont organisés.
Ok je regarde tout ça dans la semaine et je reviens vers toi ;)

Merci pour ta patience

a bientôt ...
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
PIC NIC SP 1 va chercher les infos dans dix classeurs diffèrent et ceci sur cinq jours ...
Ca, ça m'avait échappé.
La structure actuelle ne permet que d'ouvrir un seul fichier, elle ne marchera donc pas.
Je vous prépare un fichier plus proche de votre réalité et je reviens vers vous.
Mais 10 fichiers sur 5 jours, cela veut dire que vous avez deux fichiers de mises à jours pour cheque jour ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re Bonjour,
Voici une nouvelle PJ réaliste par rapport à votre besoin.
1- J'ai viré toutes les macros partout. Elles n'ont rien à faire dans les feuilles mais dans un module. En PJ elles sont dans le module "Mise_A_Jour"
2- Dans ThisworkBook il y a la macro Workbook_Open qui s'exécute à l'ouverture du fichier. Si pas de bug vous n'avez pas à y toucher. ( NB j'ai mis le On error goto Fin en commentaires pour la mise au point )
3- Dans le module "Mise_A_Jour", il y a la macro "UpdateSheet" qui fera réellement la mise à jour d'une feuille. Vous n'avez pas à y toucher car elle est générique, elle recevra les données de l'autre module "Mise_a_jour_onglets"
4- J'ai construit la macro "Mise_a_jour_onglets" de façon structurée. Pour la continuer il suffit de recopier :
VB:
'----------------------------------------------------------------------------------------------------------
'LUNDI
    ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I378:I380", "B13", "I381:I382", "E14", "F383:I384", "M6", "H385:I386", "E15", "H387:I388", "E16", "D381:E382", "E10", "D397:G397", "I3", _
                  "Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:L397", "I3", _
                  "Y378:Y380", "B25", "Y381:Y382", "E26", "V383:Y384", "M6", "X385:Y386", "E27", "X387:Y388", "E28", "T381:U382", "E10", "T397:W397", "I3", _
                "AG378:AG380", "B31", "AG381:AG382", "E32", "AD383:AG384", "M6", "AF385:AG386", "E33", "AF387:AG388", "E34", "AB381:ACU382", "E10", "AB397:AE397", "I3")
    ' Mise à jour de l'onglet (macro dans ThisWorkbook )
    UpdateSheet
à la fin. On peut en mettre tant qu'on veut.
Dans chaque petit module rajouté il faut modifier ces 5 variables :
' Chemin = "C:\Users\PC_PAPA\Desktop\" Nom du chemin, doit se terminer par "\"
' NomFichier = "9 PRE MARTINET DEMAT 9.xlsm" Nom du fichier à lire
' OngletLu = "PRINTEMPS" Nom de l'onglet à lire
' NomOnglet = "LUNDI" Nom de l'onglet à écrire
' Tablo = Array("I378:I380", "B13", .... , "AB397:AE397", "I3") Tableau des adresses écriture et lecture
et c'est le module UpdateSheet qui se chargera des écritures.
( NB je répète à chaque fois Chemin pour laisser le cas échéant la possibilité que les fichiers à lire soient dans des dossiers différents.)
Attention vous avez des erreurs dans vos tableaux. Par ex pour le tableau de Données 9 vous avez "L397:397" au lieu de "L397:L397". Ce qui provoque une erreur.
( J'ai testé juste avec une partie, elle est bidon pour les données donc il faudra modifier aussi LUNDI.
Voilà. Ca me semble simple à adapter.
Si gros problème, je pourrais toujours faire la mise au point, mais il faudra me fournir les données nécessaires.
 

Pièces jointes

  • FICHE PIC NIC 1 S P (5).xlsm
    574 KB · Affichages: 2

Quicksland

XLDnaute Occasionnel
Bonjour,

Ca, ça m'avait échappé.
La structure actuelle ne permet que d'ouvrir un seul fichier, elle ne marchera donc pas.
Je vous prépare un fichier plus proche de votre réalité et je reviens vers vous.
Mais 10 fichiers sur 5 jours, cela veut dire que vous avez deux fichiers de mises à jours pour cheque jour ?

Bonjour,

Ca, ça m'avait échappé.
La structure actuelle ne permet que d'ouvrir un seul fichier, elle ne marchera donc pas.
Je vous prépare un fichier plus proche de votre réalité et je reviens vers vous.
Mais 10 fichiers sur 5 jours, cela veut dire que vous avez deux fichiers de mises à jours pour cheque jour ?
Bonjour Sylvanu ,

Ah ok pas de soucis ;)

C’est dix classeur par jour qui alimente le fichier PIC NIC 1 SP ( 1 SP pour première semaine printemps )

Dans PIC NIC 1SP tu as 40 tableaux et dans exemple « 1 CAMUS LA RIBAMBELLE 1 » tu as trois tableau qui corresponde à trois semaines
Dans le premier tableau tu as du lundi au vendredi
Exemple lundi tu as pic nic « N1 N2 N3 et N4
Qui alimente la première ranger " lundi du tableau « PIC NIC 1SP «

Il y a la même chose avec un fichier « PIC NIC 2 SP qui reçois les valeurs du deuxième tableau et un fichier PIC NIC 3 SP qui reçois les valeurs du troisième tableau

Voilà en gros …
Je répondrai à ton autre message ce soir
Merci pour tout !
Bonne journée
 

Quicksland

XLDnaute Occasionnel
Re Bonjour,
Voici une nouvelle PJ réaliste par rapport à votre besoin.
1- J'ai viré toutes les macros partout. Elles n'ont rien à faire dans les feuilles mais dans un module. En PJ elles sont dans le module "Mise_A_Jour"
2- Dans ThisworkBook il y a la macro Workbook_Open qui s'exécute à l'ouverture du fichier. Si pas de bug vous n'avez pas à y toucher. ( NB j'ai mis le On error goto Fin en commentaires pour la mise au point )
3- Dans le module "Mise_A_Jour", il y a la macro "UpdateSheet" qui fera réellement la mise à jour d'une feuille. Vous n'avez pas à y toucher car elle est générique, elle recevra les données de l'autre module "Mise_a_jour_onglets"
4- J'ai construit la macro "Mise_a_jour_onglets" de façon structurée. Pour la continuer il suffit de recopier :
VB:
'----------------------------------------------------------------------------------------------------------
'LUNDI
    ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I378:I380", "B13", "I381:I382", "E14", "F383:I384", "M6", "H385:I386", "E15", "H387:I388", "E16", "D381:E382", "E10", "D397:G397", "I3", _
                  "Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:L397", "I3", _
                  "Y378:Y380", "B25", "Y381:Y382", "E26", "V383:Y384", "M6", "X385:Y386", "E27", "X387:Y388", "E28", "T381:U382", "E10", "T397:W397", "I3", _
                "AG378:AG380", "B31", "AG381:AG382", "E32", "AD383:AG384", "M6", "AF385:AG386", "E33", "AF387:AG388", "E34", "AB381:ACU382", "E10", "AB397:AE397", "I3")
    ' Mise à jour de l'onglet (macro dans ThisWorkbook )
    UpdateSheet
à la fin. On peut en mettre tant qu'on veut.
Dans chaque petit module rajouté il faut modifier ces 5 variables :
' Chemin = "C:\Users\PC_PAPA\Desktop\" Nom du chemin, doit se terminer par "\"
' NomFichier = "9 PRE MARTINET DEMAT 9.xlsm" Nom du fichier à lire
' OngletLu = "PRINTEMPS" Nom de l'onglet à lire
' NomOnglet = "LUNDI" Nom de l'onglet à écrire
' Tablo = Array("I378:I380", "B13", .... , "AB397:AE397", "I3") Tableau des adresses écriture et lecture
et c'est le module UpdateSheet qui se chargera des écritures.
( NB je répète à chaque fois Chemin pour laisser le cas échéant la possibilité que les fichiers à lire soient dans des dossiers différents.)
Attention vous avez des erreurs dans vos tableaux. Par ex pour le tableau de Données 9 vous avez "L397:397" au lieu de "L397:L397". Ce qui provoque une erreur.
( J'ai testé juste avec une partie, elle est bidon pour les données donc il faudra modifier aussi LUNDI.
Voilà. Ca me semble simple à adapter.
Si gros problème, je pourrais toujours faire la mise au point, mais il faudra me fournir les données nécessaires.
Bonjour Sylvanu ;)

Désolé si pas répondu avant problème internet ( orage )

Alors la tu as vraiment bien bossé 👍 je ne suis pas en train de dire que les autres fois c'était moins bien mais simplement que la c'est vraiment top !!!

J'ai essayé d'apprivoiser la bête ...😊
pour le chemin d'accès je doit encore mettre le bon !
sinon voici mon début de code ....

dit moi si je suis sur la bonne voie ou si j'ai tout faux !!!

VB:
Sub Mise_a_jour_onglets()
'----------------------------------------------------------------------------------------------------------
'LUNDI
    ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "1 CAMUS  LA RIBAMBELLE 1.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "B13", "I5:I6", "E14", "F7:I8", "M6", "H9:I10", "E15", "H11:I12", "E16", "D5:E6", "E10", "D21:G21", "I3", _
                  "Q2:Q4", "B19", "Q5:Q6", "E20", "N7:Q8", "M6", "P9:Q10", "E21", "P11:Q12", "E22", "L5:M6", "E10", "L21:O21", "I3", _
                  "Y2:Y4", "B25", "Y5:Y6", "E26", "V7:Y8", "M6", "X9:Y10", "E27", "X11:Y12", "E28", "T5:U6", "E10", "T21:W21", "I3", _
    "AG2:AG4", "B31", "AG5:AG6", "E32", "AD7:AG8", "M6", "AF9:AG10", "E33", "AF11:AG12", "E34", "AB5:AC6", "E10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "2 DAUDET LA SALAMANDRE 2.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
     Tablo = Array("I49:I51", "B13", "I52:I53", "E14", "F54:I55", "M6", "H56:I57", "E15", "H58:I59", "E16", "D52:E53", "E10", "D68:G68", "I3", _
                  "Q49:Q51", "B19", "Q52:Q53", "E20", "N54:Q55", "M6", "P56:Q57", "E21", "P58:Q59", "E22", "L52:M53", "E10", "L68:O68", "I3", _
                  "Y49:Y51", "B25", "Y52:Y53", "E26", "V54:Y55", "M6", "X56:Y57", "E27", "X58:Y59", "E28", "T52:U53", "E10", "T68:W68", "I3", _
    "AG49:AG51", "B31", "AG52:AG53", "E32", "AD54:AG55", "M6", "AF56:AG57", "E33", "AF58:AG59", "E34", "AB52:ACU53", "E10", "AB68:AE68", "I3") ' Mise à jour de l'onglet (macro dans ThisWorkbook )
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "3 JEAN MOULIN LES MARMOUZETS 3.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I97:I98", "B13", "I99:I100", "E14", "F101:I102", "M6", "H103:I104", "E15", "H105:I106", "E16", "D99:E100", "E10", "D115:G115", "I3", _
                  "Q97:Q98", "B19", "Q99:Q100", "E20", "N101:Q102", "M6", "P103:Q104", "E21", "P105:Q106", "E22", "L99:M100", "E10", "L115:O115", "I3", _
                  "Y97:Y98", "B25", "Y99:Y100", "E26", "V101:Y102", "M6", "X103:Y104", "E27", "X105:Y106", "E28", "T99:U100", "E10", "T115:W115", "I3", _
    "AG97:AG98", "B31", "AG99:AG100", "E32", "AD101:AG102", "M6", "AF103:AG104", "E33", "AF105:AG106", "E34", "AB99:ACU100", "E10", "AB115:AE115", "I3")
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "4 NOTRE DAME DU THIL LA BUISSONNIERE 4.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I143:I145", "B13", "I146:I147", "E14", "F148:I149", "M6", "H150:I151", "E15", "H152:I153", "E16", "D146:E147", "E10", "D162:G162", "I3", _
                  "Q143:Q145", "B19", "Q146:Q147", "E20", "N148:Q149", "M6", "P150:Q151", "E21", "P152:Q153", "E22", "L146:M147", "E10", "L162:O162", "I3", _
                  "Y143:Y145", "B25", "Y146:Y147", "E26", "V148:Y149", "M6", "X150:Y151", "E27", "X152:Y153", "E28", "T146:U147", "E10", "T162:W162", "I3", _
    "AG143:AG145", "B31", "AG146:AG147", "E32", "AD148:AG149", "M6", "AF150:AG151", "E33", "AF152:AG153", "E34", "AB146:ACU147", "E10", "AB162:AE162", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "5 LA GRENOUILLERE CŒUR DE MOME 5.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I190:I192", "B13", "I193:I194", "E14", "F195:I196", "M6", "H197:I198", "E15", "H199:I200", "E16", "D193:E194", "E10", "D209:G209", "I3", _
                  "Q190:Q192", "B19", "Q193:Q194", "E20", "N195:Q196", "M6", "P197:Q198", "E21", "P199:Q200", "E22", "L193:M194", "E10", "L209:O209", "I3", _
                  "Y190:Y192", "B25", "Y193:Y194", "E26", "V195:Y196", "M6", "X197:Y198", "E27", "X199:Y200", "E28", "T193:U194", "E10", "T209:W209", "I3", _
                "AG190:AG192", "B31", "AG193:AG194", "E32", "AD195:AG196", "M6", "AF197:AG198", "E33", "AF199:AG200", "E34", "AB193:ACU194", "E10", "AB209:AE209", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "6 SAINT LUCIEN CŒUR DE MOME 6.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I237:I239", "B13", "I240:I241", "E14", "F242:I243", "M6", "H244:I245", "E15", "H246:I247", "E16", "D240:E241", "E10", "D256:G256", "I3", _
                  "Q237:Q239", "B19", "Q240:Q241", "E20", "N242:Q243", "M6", "P244:Q245", "E21", "P246:Q247", "E22", "L240:M241", "E10", "L256:O256", "I3", _
                  "Y237:Y239", "B25", "Y240:Y241", "E26", "V242:Y243", "M6", "X244:Y245", "E27", "X246:Y247", "E28", "T240:U241", "E10", "T256:W256", "I3", _
                "AG237:AG239", "B31", "AG240:AG241", "E32", "AD242:AG243", "M6", "AF244:AG245", "E33", "AF246:AG247", "E34", "AB240:ACU241", "E10", "AB256:AE256", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "7 LES ALOUETTES LE PETIT PRINCE 7.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
   Tablo = Array("I284:I286", "B13", "I287:I288", "E14", "F289:I290", "M6", "H291:I292", "E15", "H293:I294", "E16", "D287:E288", "E10", "D303:G303", "I3", _
                  "Q284:Q286", "B19", "Q287:Q288", "E20", "N289:Q290", "M6", "P291:Q292", "E21", "P293:Q294", "E22", "L287:M288", "E10", "L303:303", "I3", _
                  "Y284:Y286", "B25", "Y287:Y288", "E26", "V289:Y290", "M6", "X291:Y292", "E27", "X293:Y294", "E28", "T287:U288", "E10", "T303:W303", "I3", _
                "AG284:AG286", "B31", "AG287:AG288", "E32", "AD289:AG290", "M6", "AF291:AG292", "E33", "AF293:AG294", "E34", "AB287:ACU288", "E10", "AB303:AE303", "I3")
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "8 JULES FERRY ASTUCE 8.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I331:I333", "B13", "I334:I335", "E14", "F336:I337", "M6", "H338:I339", "E15", "H340:I341", "E16", "D334:E335", "E10", "D350:G350", "I3", _
                  "Q331:Q333", "B19", "Q334:Q335", "E20", "N336:Q337", "M6", "P338:Q339", "E21", "P340:Q341", "E22", "L334:M335", "E10", "L350:350", "I3", _
                  "Y331:Y333", "B25", "Y334:Y335", "E26", "V336:Y337", "M6", "X338:Y339", "E27", "X340:Y341", "E28", "T334:U335", "E10", "T350:W350", "I3", _
                "AG331:AG333", "B31", "AG334:AG335", "E32", "AD336:AG337", "M6", "AF338:AG339", "E33", "AF340:AG341", "E34", "AB334:ACU335", "E10", "AB350:AE350", "I3")
    
   Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I378:I380", "B13", "I381:I382", "E14", "F383:I384", "M6", "H385:I386", "E15", "H387:I388", "E16", "D381:E382", "E10", "D397:G397", "I3", _
                  "Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:397", "I3", _
                  "Y378:Y380", "B25", "Y381:Y382", "E26", "V383:Y384", "M6", "X385:Y386", "E27", "X387:Y388", "E28", "T381:U382", "E10", "T397:W397", "I3", _
                "AG378:AG380", "B31", "AG381:AG382", "E32", "AD383:AG384", "M6", "AF385:AG386", "E33", "AF387:AG388", "E34", "AB381:ACU382", "E10", "AB397:AE397", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "10 MARCEL PAGNOL LES CIGALES 10.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
   Tablo = Array("I425:I427", "B13", "I428:I429", "E14", "F430:I431", "M6", "H432:I433", "E15", "H434:I435", "E16", "D428:E429", "E10", "D444:G444", "I3", _
                  "Q425:Q427", "B19", "Q428:Q429", "E20", "N430:Q431", "M6", "P432:Q433", "E21", "P434:Q435", "E22", "L428:M429", "E10", "L444:444", "I3", _
                  "Y425:Y427", "B25", "Y428:Y429", "E26", "V430:Y431", "M6", "X432:Y433", "E27", "X434:Y435", "E28", "T428:U429", "E10", "T444:W444", "I3", _
                "AG425:AG427", "B31", "AG428:AG429", "E32", "AD430:AG431", "M6", "AF432:AG433", "E33", "AF434:AG435", "E34", "AB428:ACU429", "E10", "AB444:AE444", "I3")
    
    UpdateSheet
'----------------------------------------------------------------------------------------------------------
'MARDI
 ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "1 CAMUS  LA RIBAMBELLE 1.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "2 DAUDET LA SALAMANDRE 2.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
     Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "3 JEAN MOULIN LES MARMOUZETS 3.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
   Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "4 NOTRE DAME DU THIL LA BUISSONNIERE 4.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
   Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "5 LA GRENOUILLERE CŒUR DE MOME 5.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "6 SAINT LUCIEN CŒUR DE MOME 6.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "7 LES ALOUETTES LE PETIT PRINCE 7.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
  Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
     Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "8 JULES FERRY ASTUCE 8.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
   Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
   Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
    Chemin = "C:\Users\PC_PAPA\Desktop\"
    NomFichier = "10 MARCEL PAGNOL LES CIGALES 10.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "MARDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
  Tablo = Array("I2:I4", "F13", "I5:I6", "I14", "F7:I8", "M6", "H9:I10", "I15", "H11:I12", "I16", "D5:E6", "I10", "D21:G21", "I3", _
                  "Q2:Q4", "F19", "Q5:Q6", "I20", "N7:Q8", "M6", "P9:Q10", "I21", "P11:Q12", "I22", "L5:M6", "I10", "L21:O21", "I3", _
                  "Y2:Y4", "F25", "Y5:Y6", "I26", "V7:Y8", "M6", "X9:Y10", "I27", "X11:Y12", "I28", "T5:U6", "I10", "T21:W21", "I3", _
                 "AG2:AG4", "F31", "AG5:AG6", "I32", "AD7:AG8", "M6", "AF9:AG10", "I33", "AF11:AG12", "I34", "AB5:AC6", "I10", "AB21:AE21", "I3")
    
  'MERCEDI
    
    
    UpdateSheet

Merci beaucoup pour le travaille effectué
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
J'ai essayé de créé le mieux structuré pour vous simplifier la tache. Content que vous vous en sortiez.
Pour le chemin, c'est simple :
1- Vous ouvrez l'explorateur de fichier là où se trouve votre fichier de données. Par exemple :
1654704858912.png

2- Vous cliquez sur la barre d'adresse, le chemin Windows va se transformer en "vrai chemin" système :
1654704931451.png

3- Vous faites un Ctrl+C
4- Dans le VBA vous faites Chemin=" puis Ctrl+V puis \"
C'est tout, vous obtenez alors :
VB:
Chemin = "g:\Users\PC_PAPA\Documents\_SYLVAIN\Technique\"
et vous le faites pour toutes les déclaration de chemin.
Dans le cas où tous vos fichiers sont strictement au même endroit alors vous pouvez ne conserver que la première déclaration et supprimer toutes les autres :
Code:
Sub Mise_a_jour_onglets()
    Chemin = "g:\Users\PC_PAPA\Documents\_SYLVAIN\Technique\"
'----------------------------------------------------------------------------------------------------------
'LUNDI
    ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
J'ai fait ça au cas où tous vos fichiers de données se baladent dans plusieurs dossiers.

Par contre il y a un bug.
Chaque "module" contient les valeurs de Chemin, NomFichier, OngletLu, NomOnglet, NomOnglet pour faire la mise à jour, Donc après le tableau il faut absolument faire un UpdateSheet pour faire la mise à jour.
En clair un "module" complet c'est :
Code:
'----------------------------------------------------------------------------------------------------------
'LUNDI
    ' Déclaration du chemin des fichiers à lire, du nom du fichier et du nom de l'onglet à écrire
    Chemin = "g:\Users\PC_PAPA\Documents\_SYLVAIN\Technique\"
    NomFichier = "9 PRE MARTINET DEMAT 9.xlsm"
    OngletLu = "PRINTEMPS"
    NomOnglet = "LUNDI"
    ' Déclaration tableau adresses. Ce tableau est organisé avec Plage à écrire, virgule, Plage à lire
    Tablo = Array("I378:I380", "B13", "I381:I382", "E14", "F383:I384", "M6", "H385:I386", "E15", "H387:I388", "E16", "D381:E382", "E10", "D397:G397", "I3", _
                  "Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:L397", "I3", _
                  "Y378:Y380", "B25", "Y381:Y382", "E26", "V383:Y384", "M6", "X385:Y386", "E27", "X387:Y388", "E28", "T381:U382", "E10", "T397:W397", "I3", _
                "AG378:AG380", "B31", "AG381:AG382", "E32", "AD383:AG384", "M6", "AF385:AG386", "E33", "AF387:AG388", "E34", "AB381:ACU382", "E10", "AB397:AE397", "I3")
    ' Mise à jour de l'onglet (macro dans ThisWorkbook )
    UpdateSheet
'----------------------------------------------------------------------------------------------------------
En fait un module, c'est :
VB:
Initialisation des variables
Tablo des adresses à lire et à écrire
Mise à jour du fichier avec UpdateSheet
La dernière ligne est fondamentale puisque c'est elle qui fait le boulot.

Ensuite, j'ai passé vos tableau dans un filtre en recherchant des erreurs dans les tableaux, j'en ai trouvé 4 :
Code:
"Q284:Q286", "B19", "Q287:Q288", "E20", "N289:Q290", "M6", "P291:Q292", "E21", "P293:Q294", "E22", "L287:M288", "E10", "L303:303", "I3", _
"Q331:Q333", "B19", "Q334:Q335", "E20", "N336:Q337", "M6", "P338:Q339", "E21", "P340:Q341", "E22", "L334:M335", "E10", "L350:350", "I3", _
"Q378:Q380", "B19", "Q381:Q382", "E20", "N383:Q384", "M6", "P385:Q386", "E21", "P387:Q388", "E22", "L381:M382", "E10", "L397:397", "I3", _
"Q425:Q427", "B19", "Q428:Q429", "E20", "N430:Q431", "M6", "P432:Q433", "E21", "P434:Q435", "E22", "L428:M429", "E10", "L444:444", "I3", _
Il manque une lettre sur :
Code:
"L303:303"    mettre    "L303:L303"
"L350:350"    mettre    "L350:L350"
"L397:397"    mettre    "L397:L397"
"L444:444"    mettre    "L444:L444"
Pour trouver les lignes Faites un Ctrl+F avec recherche :3 , puis avec :4.
Voilà, ça avance !!!
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 892
Membres
101 831
dernier inscrit
gillec