Bouton excel pour créer des classeur à partir d'un tableau
Résolu
KAD2400
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
KAD2400 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
KAD2400 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Bouton excel pour créer des classeur à partir d'un tableau
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Créer un lien pour partager des photos - Guide
- Trier un tableau excel - Guide
- Créer un compte google - Guide
- Tableau word - Guide
2 réponses
Bonjour Kad, bonjour le forum,
Peut-être comme ça :
Peut-être comme ça :
Sub Macro1() Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim I As Integer 'déclare la variable I (Incrément) Dim NC As String 'déclare la variable NC (Nom du Classeur) Dim CH As String 'déclare la variable CH (CHemin d'accès du Classeur) Dim J As Byte 'déclare la variable J (jncrément) Dim TD(1 To 2, 1 To 3) As Variant 'déclare la variable TD (Tableau des Données) Dim CD As Workbook 'déclare la variable CD (Classeur Destination) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Set CS = ThisWorkbook 'définit le classeur source CS Set OS = CS.Sheets("Feuil1") 'définit l'onglet source OS (à adapter) TV = OS.Range("C4").CurrentRegion 'définit le tableau des valeurs TV For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde) NC = TV(I, 2) & TV(I, 1) 'définit le nom du classeur NC CH = TV(I, 6) & "\" 'définit le chemin d'accès du classeur CH For J = 1 To 3 TD(1, J) = TV(1, J + 2) TD(2, J) = TV(I, J + 2) Next J Workbooks.Add 'ouvre un classeur vierge ActiveWorkbook.SaveAs (CH & NC) 'enregiste-sous le classeur vierge Set CD = ActiveWorkbook 'définit le classeur de destiation CD Set OD = CD.Sheets(1) 'définit l'onglet de destination OD 'revoie le tableau des données TD dans la cellule A1 (redimensionnée) de l'onglet OD OD.Range("A1").Resize(2, 3).Value = TD CD.Close True 'ferme le classeur destination en enregistrant les modifications Next I 'prochaine ligne de la boucle 1 End Sub
KAD2400
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
Un grand merci, ça marche à un petit détail près le chemin d'accès ne s'affiche pas dans le tableau principal.
Re,
J'avais mal compris pardon...
Essaie ce nouveau code :
J'avais mal compris pardon...
Essaie ce nouveau code :
Sub Macro1() Const CH As String = "C:\Users\natsuwoow\Desktop\calcul\" 'déclare et définit la constante CH Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs) Dim I As Integer 'déclare la variable I (Incrément) Dim NC As String 'déclare la variable NC (Nom du Classeur) Dim J As Byte 'déclare la variable J (jncrément) Dim TD(1 To 2, 1 To 3) As Variant 'déclare la variable TD (Tableau des Données) Dim CD As Workbook 'déclare la variable CD (Classeur Destination) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Set CS = ThisWorkbook 'définit le classeur source CS Set OS = CS.Sheets("Feuil1") 'définit l'onglet source OS (à adapter) TV = OS.Range("C4").CurrentRegion 'définit le tableau des valeurs TV For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde) NC = TV(I, 2) & TV(I, 1) 'définit le nom du classeur NC TV(I, 6) = CH 'renvoie le chemin d'accès du classeur CH dans la données ligne I colonne 6 de TV For J = 1 To 3 TD(1, J) = TV(1, J + 2) TD(2, J) = TV(I, J + 2) Next J Workbooks.Add 'ouvre un classeur vierge ActiveWorkbook.SaveAs (CH & NC) 'enregiste-sous le classeur vierge Set CD = ActiveWorkbook 'définit le classeur de destiation CD Set OD = CD.Sheets(1) 'définit l'onglet de destination OD 'revoie le tableau des données TD dans la cellule A1 (redimensionnée) de l'onglet OD OD.Range("A1").Resize(2, 3).Value = TD CD.Close True 'ferme le classeur destination en enregistrant les modifications Next I 'prochaine ligne de la boucle 1 End Sub