Copier tableau taille variable sur feuille calcul
davidos
-
thev Messages postés 1986 Date d'inscription Statut Membre Dernière intervention -
thev Messages postés 1986 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je stocke des données que j'extrait d'une base dans un tableau dont j'ai défini le type :
Comment puis-je faire pour faire apparaitre mon tableau dans ma feuille de calcul de la manière la plus simple possible, avec donc une colonne pour "ligne_dem", une autre pour "date_dem" etc... ?
Je crains de ne pas avoir la bonne syntaxe avec Range.Resize...
Merci d'avance,
David
Je stocke des données que j'extrait d'une base dans un tableau dont j'ai défini le type :
Type tableau_type_dem ligne_dem As Integer date_dem As Date duree_dem As Date rejets_nox As Integer rejets_so2 As Integer End Type
Comment puis-je faire pour faire apparaitre mon tableau dans ma feuille de calcul de la manière la plus simple possible, avec donc une colonne pour "ligne_dem", une autre pour "date_dem" etc... ?
Je crains de ne pas avoir la bonne syntaxe avec Range.Resize...
Merci d'avance,
David
A voir également:
- Un tableau ne peut pas en chevaucher un autre
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Comment faire un tableau croisé dynamique - Guide
3 réponses
Bonjour,
Vous pouvez essayer ce code
Vous pouvez essayer ce code
Sub création_tableau()
With ActiveSheet
Set plage_tableau = .Range("A1:E1") ' définition du tableau
plage_tableau.Columns(1).NumberFormat = "0" ' format entier
plage_tableau.Columns(2).NumberFormat = "dd/mm/yyyy" ' format date
plage_tableau.Columns(3).NumberFormat = "dd/mm/yyyy" ' format date
plage_tableau.Columns(4).NumberFormat = "0" ' format entier
plage_tableau.Columns(5).NumberFormat = "0" ' format entier
plage_tableau.Rows(1).Value = Array("ligne_dem", "date_dem", "duree_dem", "rejets_nox", "rejets_so2") 'ajout des champs
.ListObjects.Add(SourceType:=xlSrcRange, Source:=plage_tableau, XlListObjectHasHeaders:=xlYes).Name = "tableau_type"
End With
End Sub
Bonjour !
Merci pour votre réponse !
Votre code permet en effet de créer un tableau à l'emplacement souhaité, mais il ne le remplit pas. Je ne vois que les en-têtes.
J'ai essayé une boucle for en m'inspirant de votre code (rajoutée avant .ListObject.Add() que je garde donc) :
Mais il me renvoie l'erreur 1004 : "un tableau ne peut pas en chevaucher un autre"
Merci pour votre réponse !
Votre code permet en effet de créer un tableau à l'emplacement souhaité, mais il ne le remplit pas. Je ne vois que les en-têtes.
J'ai essayé une boucle for en m'inspirant de votre code (rajoutée avant .ListObject.Add() que je garde donc) :
For i = 2 to <nb_lignes> 'je vous épargne le nom explicite
plage_tableau.Rows(i).Value = Array(tableau_type(i).ligne_dem, tableau_type(i).date_dem, etc...)
Next
Mais il me renvoie l'erreur 1004 : "un tableau ne peut pas en chevaucher un autre"
Bonjour,
Après création du tableau "tableau_type", pour son remplissage :
Après création du tableau "tableau_type", pour son remplissage :
--
'remplissage tableau
With ActiveSheet.ListObjects("tableau_type")
Set ligne_insertion = .HeaderRowRange.Offset(.ListRows.Count + 1)
For i = 0 To <nb_lignes> -2
ligne_insertion.Offset(i).Value = " " 'création de la ligne à blanc
.ListColumns(("ligne_dem")).DataBodyRange.Rows(.ListRows.Count).Value = tableau_type(i + 2).ligne_dem
.ListColumns("date_dem").DataBodyRange.Rows(.ListRows.Count).Value = tableau_type(i + 2).date_dem
.ListColumns("duree_dem").DataBodyRange.Rows(.ListRows.Count).Value = tableau_type(i + 2).duree_dem
.ListColumns("rejets_nox").DataBodyRange.Rows(.ListRows.Count).Value = tableau_type(i + 2).rejets_nox
.ListColumns("rejets_so2").DataBodyRange.Rows(.ListRows.Count).Value = tableau_type(i + 2).rejets_so2
Next
End With