Bonjour à toutes et à tous,

Je dois pré remplir un tableau avec des données provenant d'un listing.
Pour cela j'ai un classeur contenant 2 feuilles ( Modèle et Base Listing ), la première feuille contient le tableau vide (qui servira de "modèle"), et la 2e contient le fameux listing.

Les données du listing sont du type:
Nom Commune / Type Objet / Référence Objet / Adresse Objet

Jusque la, j'ai réussi à "nettoyer" le listing, je peux dire combien j'ai de communes, et combien j'ai d'objet dans chaque commune (grâce à un tableau croisé (sur une feuille "TC") qui me sert d'intermedaire, il y avait peut être plus simple mais ça fonctionne).
j'ai aussi réussi à créer autant de feuille que de commune mais après je sèche….
Il me reste à :
Renommer chaque feuille avec le nom d'une commune (j'y suis presque, mais…)
Et recopier le "modèle" de tableau sur chaque feuille (je pense faire un simple copié / coller dans ma boucle de création des feuilles…)
Recopier chaque commune en dessous de chaque tableau avec les données liées à chaque commune


En attendant voilà mon code (Je bosse sur excel 2000):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Sub TC_pi()
'
' TC_pi Macro
' Macro enregistrée le 12/03/2010 
'
 
'positionnement sur la feuille Base Listing en A1
    Sheets("Base Listing").Select
    Range("A1").Select
    Selection.CurrentRegion.Select
    'Tri par ordre croissant des communes
    Selection.Sort Key1:=Range("a2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
 
' Création d'un Tableau croisé Dynamique Variable
    DerniereLigne = Range("A1").End(xlDown).Row
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "'Base Listing'!R1C1:R" & DerniereLigne & "C4").CreatePivotTable TableDestination:="", _
        TableName:="Tableau croisé dynamique3"
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(1, 1)
    ActiveSheet.Cells(1, 1).Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").SmallGrid = False
    ActiveSheet.PivotTables("Tableau croisé dynamique3").AddFields RowFields:= _
        "Commune"
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Commune"). _
        Orientation = xlDataField
 
'renommer la feuille du tc (n°2) en "TC"
    Sheets(2).Name = "TC"
 
' Selection du tableau et Copier/Collage spacial "valeur"
    Range("A1").Select
    ActiveCell.CurrentRegion.Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
 
' Suppression des 2 ere lignes "inutiles"
    Rows("1:2").Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
 
' definir le nombre de commune en D1
  Nb_Commune = WorksheetFunction.CountA(Range("a:a")) - 1
    Range("D1").Select
    ActiveCell = Nb_Commune
 
 
 
' Définir le nombre d'onglet à créer en fonction du nombre de communes
    Range("a1").Select
    For i = 1 To Nb_Commune
        Sheets.Add
 
        Sheets(2).Name = i 'à la place du i ' la place du i je dois dire de prendre la premiere valeur du tableau croisé
    Next
 
    Dim Nom_feuille As String
 
  'selectionner la liste des communes (colonne a:a)
 
' Renommer chaque onglet avec les noms des communes
 
' Copier la base du tableau pour le pré-remplissage dans chaque onglet
 
' copier les données de chaque commune
 
End Sub
Bon il est claire que mon code va en faire hurler quelques uns....alors pitié,pas tapper...