Bonjour à tous !
J'ai fait une macro avec Excel, elle a l'air compliqué comme ça mais je voudrais juste faire en sorte que le code soit applicable tt le tps, c'est à dire enlever le C:/DocumentAndSetting et compagnie, étant donné que le fichier auquel il fait référence est dans le même dossier... Je connais rien du tt en VB... Enfin, vraiment les bases...
Voila le code :

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
Private Sub CommandButton1_Click()
' CréationTableauDeCompetence Macro
' Génération du Tableau des Compétences
'
' Touche de raccourci du clavier: Ctrl+Maj+G
'
    With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
        .Connection = Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=C:\Documents and Settings\Z3cN@$\Bureau\Stage de Première Année\Gestion des Compétences des Salariés\Gestion des Salariés.mdb;DefaultDir=C:\Documents and Set" _
        ), Array( _
        "tings\Z3cN@$\Bureau\Stage de Première Année\Gestion des Compétences des Salariés;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
        ))
        .CommandType = xlCmdSql
        .CommandText = Array( _
        "SELECT REXPERIENCE.LibelleCompetence, REXPERIENCE.BesoinCompetence, REXPERIENCE.NiveauCompetence, REXPERIENCE.NomSalarie, REXPERIENCE.PrenomSalarie, REXPERIENCE.PosteOccupé, REXPERIENCE.NiveauExperien" _
        , _
        "ce" & Chr(13) & "" & Chr(10) & "FROM `C:\Documents and Settings\Z3cN@$\Bureau\Stage de Première Année\Gestion des Compétences des Salariés\Gestion des Salariés`.REXPERIENCE REXPERIENCE" & Chr(13) & "" & Chr(10) & "ORDER BY REXPERIENCE.LibelleCompetence" _
        )
        .CreatePivotTable TableDestination:=Range("A4"), TableName:= _
        "Tableau croisé dynamique2"
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2")
        .NullString = "1"
        .SmallGrid = False
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "LibelleCompetence")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "NiveauExperience")
        .Orientation = xlDataField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "NomSalarie")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotSelect "", _
        xlDataAndLabel
    Selection.NumberFormat = "0.00"
    Selection.NumberFormat = "0"
    Range("F5").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Somme NiveauExperience").Function = xlAverage
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotSelect _
        "'Total en ligne'", xlDataAndLabel
    Selection.NumberFormat = "0.00"
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotSelect _
        "'Total en colonne'", xlDataAndLabel
    Selection.NumberFormat = "0.00"
    Range("A11").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").GrandTotalName = "Moyenne"
    Range("F5").Select
    Columns("F:F").ColumnWidth = 10.14
    Range("A1").Select
 
    CommandButton1.Enabled = False
Merci à vous