Bouton excel pour créer des classeur à partir d'un tableau
Résolu/Fermé
KAD2400
Messages postés
3
Date d'inscription
dimanche 8 mai 2016
Statut
Membre
Dernière intervention
9 mai 2016
-
8 mai 2016 à 12:30
KAD2400 Messages postés 3 Date d'inscription dimanche 8 mai 2016 Statut Membre Dernière intervention 9 mai 2016 - 9 mai 2016 à 10:27
KAD2400 Messages postés 3 Date d'inscription dimanche 8 mai 2016 Statut Membre Dernière intervention 9 mai 2016 - 9 mai 2016 à 10:27
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
- Créer un compte google - Guide
- Trier un tableau excel - Guide
- Créer un compte gmail - Guide
2 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
8 mai 2016 à 15:11
8 mai 2016 à 15:11
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
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
8 mai 2016 à 16:08
8 mai 2016 à 16:08
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
KAD2400
Messages postés
3
Date d'inscription
dimanche 8 mai 2016
Statut
Membre
Dernière intervention
9 mai 2016
9 mai 2016 à 10:27
9 mai 2016 à 10:27
Un grand merci pour tes réponses aussi rapide, c'est parfait :D
8 mai 2016 à 15:43