Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/01/2012, 10h02   #1
Invité de passage
 
Étudiant
Inscription : novembre 2011
Messages : 22
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2011
Messages : 22
Points : 2
Points : 2
Par défaut Erreur dans une ligne de code VBA

Bonjour à tous !

Alors voici mon problème:

Je travaille sur MSproject et je souhaite exporter mes données vers Excel.

Voici le code utilisé:

Code :
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
 
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
 
Sub ExportversExcel()
 
Dim xlSheet As Excel.Worksheet
Dim Proj As Project
Dim t As Task
Dim asgn As Assignment
Dim columncount, columns, Tcount As Integer
 
Set xlApp = New Excel.Application
xlApp.Visible = True
AppActivate "Microsoft Excel"
 
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.worksheets.Add
xlSheet.name = ActiveProject.name
 
'besoin du nombres de colonnes dans Excel (égal à la plus grande valeur du code hiérarchique
 
columncount = 0
For Each t In ActiveProject.Tasks
    If Not t Is Nothing Then
        If t.OutlineLevel > columncount Then
        columncount = t.OutlineLevel
    End If
End If
 
Next t
 
'Défini la zone de cellule pour écrire la première cellule
 
Set xlRow = xlApp.ActiveCell
xlRow = "Filename: " & ActiveProject.name
dwn 1
xlRow = "OutlineLevel"
dwn 1
 
'Création des labels de colonnes
 
For columns = 1 To (columncount + 1)
    Set xlCol = xlRow.Offset(0, columns - 1)
    xlCol = columns - 1
Next columns
rgt 2 'utilise la routine rgr définie plus bas
xlCol = "Resource Name"
rgt 1
xlCol = "work"
rgt 1
xlCol = "actual work"
Tcount = 0
 
For Each t In ActiveProject.Tasks
    If Not t Is Nothing Then
        dwn 1
        Set xlCol = xlRow.Offset(0, t.OutlineLevel)
        xlCol = t.name
        If t.Summary Then
        xlCol.Font.Bold = True
    End If
 
        For Each asgn In t.Assignments
        dwn 1
        Set xl.Col = xlRow.Offset(0, columns)
        xlCol = asgn.ResourceName
        rgt 1
        xlCol = (asgn.Work / 480) & "Days"
        rgt 1
        xlCol = (asgn.ActualWork / 480) & "Days"
 
    Next asgn
    Tcount = Tcount + 1
    End If
Next t
 
AppActivate "Microsoft Project"
 
MsgBox ("Macro Complete with " & Tcounrt & " Tasks Written")
 
End Sub
Sub dwn(I As Integer)
 
    Set xlRow = xlRow.Offset(I, 0)
 
End Sub
 
Sub rgt(I As Integer)
Set xlCol = xlCol.Offset(0, I)
End Sub
Cependant, le déboggueur m'annonce une erreur ici:

Code :
Set xlRow = xlRow.Offset(I, 0)
Pourriez vous m'éclairer s'il vous plait ?

Merci à tous !!
chpierro62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2012, 22h41   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 849
Points : 16 849
Envoyer un message via Skype™ à bbil
Qu'elle est l'erreur ?

rajoute aussi la ligne :
en haut de toutes tes lignes de codes pour mettre en évidence des éventuels défauts sur la déclaration de tes variables ..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h19.


 
 
 
 
Partenaires

Hébergement Web