Bug macro Excel après passage en 2012

bonjour,

Depuis le passage en 2012 j'ai un problème avec le fichier excel en pièce jointe (fichier de suivi EG).

Ce fichier permet le suivi de livraison de différents produit.

L'utilisateur upload sont planning de production (EG- DC SLG Men) et la liste produits recu dans la semaine (reception S01) (je fournirai un fichier de chaque type).

Je pense qu'il y a un problème avec le passage en 2012, notament a cause du dimanche 1er janvier.

Il me dis erreur de type 1004, erreur definie par l'application ou pas l'objet dans cette sub du module 1 et surligne la ligne jaune :

Sub Matrix()

MyWB = ActiveWorkbook.Name

MyWS = ActiveWorkbook.ActiveSheet.Name

Sheets("Dates").Visible = True

Sheets("Prod2").Visible = True

Sheets("Matrix").Visible = True

Sheets("Matrixnoncumule").Visible = True

Dim a As Integer

Dim i As Integer

Dim j As Integer

Nblignes = 3 * Sheets("Calculation").Range("C23").Value + 1

Calculate

Sheets("Matrix").Select

Cells.Select

Selection.ClearContents

Selection.Borders.LineStyle = xlNone

p = 801

Range("A1").Value = "REF"

Range("B1").Value = "CODE-SITE"

Range("C1").Value = "SITE"

Range("D1").Value = "TYPE"

Range("E1").Select

Range("E1").Value = Sheets(MyWS).Range("S1").Value

a = Range("E1").Value

Sheets("Dates").Select

Range("I1").Select

Do While p <> a - 1

p = Selection.Value

ActiveCell.Offset(1, 0).Select Loop

Sheets("Matrix").Select

Range("F1").Select

i = 1

Sheets("Dates").Select

ActiveCell.Offset(1, 0).Select

Do While p <> a + 300

p = Selection.Value

Sheets("Matrix").Cells(1, i + 5).Value = p

ActiveCell.Offset(1, 0).Select

i = i + 1

Loop

Range("I1").Select

Sheets("Matrix").Select

Range("A1").Select

For i = 0 To Sheets("Calculation").Range("C23").Value - 1

Rows(3 * i + 2).Borders(xlEdgeTop).LineStyle = xlContinuous

Cells(3 * i + 2, 4).Value = "Cumul Jalons"

Cells(3 * i + 3, 4).Value = "Cumul Plan gelé"

Cells(3 * i + 4, 4).Value = "Cumul Suivi Livraison"

Rows(3 * i + 4).Borders(xlEdgeBottom).LineStyle = xlContinuous

Next i

f = -2

j = 2

k = 1

g = 3

Sheets("Matrix").Select

Range("E1").Select

Selection.End(xlToRight).Select

u = Selection.Column

Range("A1").Select

For i = 0 To Sheets("Calculation").Range("C23").Value - 1

g = 3

m = Sheets("Prod2").Cells(j, 1).Value

If m <> "SEMAINE" Then

Sheets("Matrix").Cells(3 * i + 2, 1).Value = Sheets("Prod2").Cells(j, 1)

Sheets("Matrix").Cells(3 * i + 3, 1).Value = Sheets("Prod2").Cells(j, 1)

Sheets("Matrix").Cells(3 * i + 4, 1).Value = Sheets("Prod2").Cells(j, 1)

Sheets("Matrix").Cells(3 * i + 2, 2).Value = Sheets("Prod2").Cells(j, 2)

Sheets("Matrix").Cells(3 * i + 3, 2).Value = Sheets("Prod2").Cells(j, 2)

Sheets("Matrix").Cells(3 * i + 4, 2).Value = Sheets("Prod2").Cells(j, 2)

Sheets("Matrix").Cells(3 * i + 2, 3).Value = Sheets("Prod2").Cells(j + 1, 2)

Sheets("Matrix").Cells(3 * i + 3, 3).Value = Sheets("Prod2").Cells(j + 1, 2)

Sheets("Matrix").Cells(3 * i + 4, 3).Value = Sheets("Prod2").Cells(j + 1, 2)

j = j + 4

f = f + 4

Else

k = j

Sheets("Matrix").Cells(3 * i + 2, 1).Value = Sheets("Prod2").Cells(j + 1, 1)

Sheets("Matrix").Cells(3 * i + 3, 1).Value = Sheets("Prod2").Cells(j + 1, 1)

Sheets("Matrix").Cells(3 * i + 4, 1).Value = Sheets("Prod2").Cells(j + 1, 1)

Sheets("Matrix").Cells(3 * i + 2, 2).Value = Sheets("Prod2").Cells(j + 1, 2)

Sheets("Matrix").Cells(3 * i + 3, 2).Value = Sheets("Prod2").Cells(j + 1, 2)

Sheets("Matrix").Cells(3 * i + 4, 2).Value = Sheets("Prod2").Cells(j + 1, 2)

Sheets("Matrix").Cells(3 * i + 2, 3).Value = Sheets("Prod2").Cells(j + 2, 2)

Sheets("Matrix").Cells(3 * i + 3, 3).Value = Sheets("Prod2").Cells(j + 2, 2)

Sheets("Matrix").Cells(3 * i + 4, 3).Value = Sheets("Prod2").Cells(j + 2, 2)

j = j + 5

f = f + 5

End If

For l = 5 To u

s = Sheets("Matrix").Cells(1, l).Value

If s = Sheets("Prod2").Cells(k, g).Value Then

Sheets("Matrix").Cells(3 * i + 2, l).Value = Sheets("Prod2").Cells(f + 1, g)

Sheets("Matrix").Cells(3 * i + 3, l).Value = Sheets("Prod2").Cells(f + 2, g)

Sheets("Matrix").Cells(3 * i + 4, l).Value = Sheets("Prod2").Cells(f + 3, g)

g = g + 1

End If

If Right(Str(s), 2) = 53 Then

Sheets("Matrix").Cells(3 * i + 2, l).Value = Sheets("Matrix").Cells(3 * i + 2, l - 1)

Sheets("Matrix").Cells(3 * i + 3, l).Value = Sheets("Matrix").Cells(3 * i + 3, l - 1)

Sheets("Matrix").Cells(3 * i + 4, l).Value = Sheets("Matrix").Cells(3 * i + 4, l - 1)

End If

Next l

Next i

Sheets("Matrix").Select

Range("A1").Select

Selection.End(xlToRight).Select

fincol = Selection.Column

Sheets("Matrixnoncumule").Select

Cells.Select

Selection.ClearContents

Selection.Borders.LineStyle = xlNone

Range("A1").Formula = "=" & Sheets("Calculation").Range("C24").Value

Range("A1").Select

Selection.Copy

Range(Range("A1"), Cells(1, u)).Select

ActiveSheet.Paste

Calculate

Application.CutCopyMode = False

Range("D1").Formula = "=" & Sheets("Calculation").Range("C26").Value

Range("A1:E1").Select

Selection.Copy

Range(Selection, Range(Cells(Nblignes, 1), Cells(Nblignes, 5))).Select

Selection.PasteSpecial xlPasteFormulas

Calculate

Application.CutCopyMode = False

Range("F2").Formula = "=" & Sheets("Calculation").Range("C25").Value

Range("F2").Select

Selection.Copy

Range(Range("F2"), Cells(Nblignes, fincol)).Select

Selection.PasteSpecial xlPasteFormulas

Range("A1").Select

Calculate

Range(Range("A1"), Cells(Nblignes, fincol)).Select

Selection.Copy

Selection.PasteSpecial xlPasteValues

Sheets("Matrix").Select

Cells.Select

Selection.Copy

Sheets("Matrixnoncumule").Select

Cells.Select

Selection.PasteSpecial xlPasteFormats

Application.CutCopyMode = False

Sheets("Prod").Visible = False

Sheets("Prod2").Visible = False

Sheets("Matrix").Visible = False

Sheets("Matrixnoncumule").Visible = False

Sheets("Dates").Visible = False

Sheets(MyWS).Select

End Sub

Je ne sais vraiment pas comment résoudre ce problème.

Merci pour votre aide


Rebonjour,

Impossible de joindre mes fichiers car ils sont trop gros.

Si vous avez des conseils pour me permettre de trouver la cause du bug, je suis preneur.

Merci

Bonjour

Un fichier aurait été souhaitable car pas évident de "deviner" pourquoi ça plante

Juste un avis

P toujours <> de a-1 donc tu es en bas de la page et tu essayes de descendre encore

Mais si ce n'est cela

xonatos a écrit :

Impossible de joindre mes fichiers car ils sont trop gros.

Tu as CiJoint

Bonjour,

Merci beaucoup pour votre réponse si rapide.

Voila les liens vers les fichiers d'origines.

Fichier ou il y a le bug :

Fichier ou il va chercher le planning de production:

Fichier ou il va chercher les livraisons :

Vraiment merci beaucoup,

Enzo

Bonjour

Pas facile à suivre

La macro Matrix n'est pas appelée directement par un bouton

Alors je voudrais savoir quelle est la valeur de

MyWS = ActiveWorkbook.ActiveSheet.Name

pour connaitre Sheets(MyWS).Range("S1").Value

A suivre

Je pense qu'il s'agit de l'onglet "date".

Pour vous expliquer le fonctionnement :

L'utilisateur se rend dans l'onglet recap et selectionne les projets qu'il veut suivre.

Puis il se rend dans l'onglet output, il choisi la semaine de reception qu'il veut suivre, puis il clique sur new week, puis il clique sur update en cochant les deux cases (en général) (c'est la que le bug se produit) puis il clique sur calcultae report, et enfoin sur export to tdb.

J'espère que ça pourra vous aider.

Merci beaucoup pour votre aide et votre temps.

Enzo

Bonjour

Cela ne va pas être pratique

Je ne peux rien exécuter (pas de périphérique P:, répertoire inexistant)

Le mieux c'est quand cela plante de regarder quelques valeurs

Quand la macro plante

Debuggage

dans la fenêtre Execution

Tapes : ? ActiveCell.address

Tu sauras où tu te situes dans la page

? MyWS

Tu connaitras exactement le nom de la page active

Parce que de mon côté je ne peux rien faire (sinon à rectifier tous les chemins)

A suivre

Rechercher des sujets similaires à "bug macro passage 2012"