Autres Création classeurs de 3 feuilles avec une information à reporter.

dhyeres

XLDnaute Nouveau
Bonjour,
J'ai une macro qui me reproduit un classeur de 3 feuilles selon une liste comportant 2 colonnes.
Je n'arrive pas à trouver comment reporter au moment de la création l'information de la colonne B de ma liste dans la feuille "Compte comité 2023" en "E2" de façon à ce que chaque nouveau classeur comporte l'information individuelle qui est au regard du nom du classeur sur la feuille liste.
Merci pour votre aide
Cordialement,
 

Pièces jointes

  • test-fichier-v1.xlsm
    172.1 KB · Affichages: 6
Solution
Bonjour dhyeres, Jacky67,

Ou directement dans la feuille créée :
VB:
Sub CréerLesFichiers()
    Dim f As Worksheet, i&, nomf$
    Set f = Sheets("Liste")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 1 To f.Range("A" & f.Rows.Count).End(xlUp).Row
        nomf = f.Range("A" & i)
        Sheets(Array("Comptes comité 2023", "Codification 2023", "Répartition des postes")).Copy
        With ActiveWorkbook
            .Sheets("Comptes comité 2023").Range("E2") = f.Range("B" & i)
            .SaveAs ThisWorkbook.Path & "\" & nomf & ".xlsx"
            .Close
        End With
    Next i
End Sub
A+

Jacky67

XLDnaute Barbatruc
Bonjour,
J'ai une macro qui me reproduit un classeur de 3 feuilles selon une liste comportant 2 colonnes.
Je n'arrive pas à trouver comment reporter au moment de la création l'information de la colonne B de ma liste dans la feuille "Compte comité 2023" en "E2" de façon à ce que chaque nouveau classeur comporte l'information individuelle qui est au regard du nom du classeur sur la feuille liste.
Merci pour votre aide
Cordialement,
Bonjour,
Quelque chose comme ceci peut-être
VB:
Sub CréerLesFichiers()
    Dim i&, nomf$
    Application.ScreenUpdating = False
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        nomf = Range("A" & i)
        Feuil4.[e2] = Range("b" & i)
        Sheets(Array("Comptes comité 2023", "Codification 2023", "Répartition des postes")).Copy
        Application.DisplayAlerts = False
        With ActiveWorkbook
            .SaveAs ThisWorkbook.Path & "\" & nomf & ".xlsx"
            .Close
        End With
    Next i
    Feuil4.[e2] = ""
End Sub
 
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour dhyeres, Jacky67,

Ou directement dans la feuille créée :
VB:
Sub CréerLesFichiers()
    Dim f As Worksheet, i&, nomf$
    Set f = Sheets("Liste")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 1 To f.Range("A" & f.Rows.Count).End(xlUp).Row
        nomf = f.Range("A" & i)
        Sheets(Array("Comptes comité 2023", "Codification 2023", "Répartition des postes")).Copy
        With ActiveWorkbook
            .Sheets("Comptes comité 2023").Range("E2") = f.Range("B" & i)
            .SaveAs ThisWorkbook.Path & "\" & nomf & ".xlsx"
            .Close
        End With
    Next i
End Sub
A+
 

dhyeres

XLDnaute Nouveau
Bonjour dhyeres, Jacky67,

Ou directement dans la feuille créée :
VB:
Sub CréerLesFichiers()
    Dim f As Worksheet, i&, nomf$
    Set f = Sheets("Liste")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 1 To f.Range("A" & f.Rows.Count).End(xlUp).Row
        nomf = f.Range("A" & i)
        Sheets(Array("Comptes comité 2023", "Codification 2023", "Répartition des postes")).Copy
        With ActiveWorkbook
            .Sheets("Comptes comité 2023").Range("E2") = f.Range("B" & i)
            .SaveAs ThisWorkbook.Path & "\" & nomf & ".xlsx"
            .Close
        End With
    Next i
End Sub
A+
Bonjour et merci beaucoup pour cette solution. Entre temps j'avais trouvé la suivante pour une liste à 4 colonnes. Je me compliquais la vie.

VB:
Option Explicit

Sub CréerLesFichiers()
    Dim f As Worksheet, i&, nomf$, value_$, avoir_$, compl_$
    Set f = Sheets("Comptes comité 2023")
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        nomf = Range("A" & i)
        value_ = Range("B" & i)
        avoir_ = Range("C" & i)
        compl_ = Range("D" & i)
        Sheets(Array("Comptes comité 2023", "Codification 2023", "Répartition des postes")).Copy
        With ActiveWorkbook
            .Sheets(1).Range("D1").Value = value_
            .Sheets(1).Range("G5").Avoir = avoir_
            .Sheets(1).Range("G6").Compl = compl_
            .SaveAs ThisWorkbook.Path & "\" & nomf & ".xlsx"
            .Close
        End With
    Next i
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 511
Membres
112 765
dernier inscrit
SIDIANW