Don_Cagoule
Messages postés11Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention21 mai 2007
-
19 juil. 2006 à 17:24
ntm113
Messages postés12Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention20 juillet 2006
-
20 juil. 2006 à 00:44
Bonjour,
Je fais face à un problème d'exécution dans l'un de mes tableurs excel, et comme j'ai déjà trouvé pas mal de réponses sur ce site, j'espère que vous pourrez me filer un coup de main.
Voici le code en question :
Sub Creation_listes()
Dim l As Integer
Dim d As Integer
Dim f As Integer
Dim c As Integer
Dim cmax As Integer
Dim g As Integer
Dim cg As Integer
Dim i As Integer
d = 4
f = 0
c = 3
cmax = 3
g = 5
cg = 3
i = 3
Do While (Worksheets("Imputations").Cells(3, cmax).Value <> "")
cmax = cmax + 1
Loop
For c = 3 To (cmax - 1) Step 1
l = 4
Worksheets("Récapitulatif").Cells(i, 3).Value = Worksheets("Imputations").Cells(3, c).Value
Worksheets("Récapitulatif").Cells(i, 2).Value = Worksheets("Imputations").Cells(2, c).Value
If (Worksheets("Imputations").Cells(2, c).Value <> "") Then
g = c
If (Worksheets("Imputations").Cells(2, c).Value = "NON_FACT") Then
Else
ActiveWorkbook.Names.Add Name:=Worksheets("Imputations").Cells(2, cg).Value, RefersTo:=Worksheets("Imputations").Range(Cells(3, cg), Cells(3, g - 1))
End If
ElseIf (c = cmax - 1) Then
g = c
ActiveWorkbook.Names.Add Name:=Worksheets("Imputations").Cells(2, cg).Value, RefersTo:=Worksheets("Imputations").Range(Cells(3, cg), Cells(3, g))
End If
cg = g
Do While (Worksheets("Imputations").Cells(l, c).Value <> "")
l = l + 1
Worksheets("Récapitulatif").Cells(i, 4).Value = Worksheets("Imputations").Cells(l - 1, c).Value
i = i + 1
Loop
f = l - 1
ActiveWorkbook.Names.Add Name:=Worksheets("Imputations").Cells(3, c).Value, RefersTo:=Worksheets("Imputations").Range(Cells(d, c), Cells(f, c))
Next c
End Sub
Explication :
Le but de ce code est de créer des groupes de cellules à partir d'une liste complète. Le problème vient du fait que ce code ne veut bien s'exécuter que lorsque je me trouve sur l'onglet "imputations". Les lignes qui semblent poser problème sont celles qui sont soulignées.
Si vous avez des idées, merci de me les faire parvenir!
ntm113
Messages postés12Date d'inscriptiondimanche 19 octobre 2003StatutMembreDernière intervention20 juillet 2006 20 juil. 2006 à 00:44
J'ai trouvé ce qui ne va pas :
C'est dans Worksheets("Imputations").Range(Cells(3, cg), Cells(3, g - 1))
Le Range appartient à la feuille Imputations mais les Cells à l'intérieur n'ont pas de parent spécifié donc il prennent par défaut la feuille active. Si la feuille active n'est pas Imputations çà bug forcément.
La bonne syntaxe est donc :
Worksheets("Imputations").Range(Worksheets("Imputations").Cells(3, cg), Worksheets("Imputations").Cells(3, g - 1))
Je sais pas ce que t'as fait pour chercher ce qui n'allait pas mais moi j'ai trouvé assez rapidement en demandant des espions sur des morceaux de la ligne qui bloquait.