Bonjour a tous,
C'est mon premier message sur le forum, d habitude j arrive a resoudre mes problemes, mais la je suis vraiment perdu.
J ai un fichier Excel (nomme Rapport) dans lequel je recupere des donnees d Access. Apres la recuperation je fais un bon paquet de calcul, tri le tout, arrange ma feuille et finallement la protege. Il est possible apres tout cela de changer quelques variables dans certaines cellules ce qui donne l ordre a Excel d inserer des ligne, il a donc fallut que j enleve la protection pour ces actions et que je la remette a la fin. Pour finir avant de fermer mon fichier, je veux qu' Excel supprime toutes les donnees qui ont ete inserees pour retrouver ma forme de base, donc avant la suppression je dois enlever la protection a nouveau.
D un autre cote avec access, j ai la possibilite de creer un Fichier qui va pecher des donnees dans plusieurs de ces Rapports. La creation marche dans ce sens : creer un rapport X (il fait donc toutes les operations enumerees auparavant dont changer les variables automatiquement), copier les donnees voulues, fermer le rapport X, Creer un rapport Y .... et ainsi de suite
Voici mon probleme (on y arrive) lorsque je creer un rapport unique que je le ferme tout va bien Excel supprime toutes les donnees... youpi je suis content...
lorsque je demande a Access le second cas ou je vais copier les donnees, a chaques fois qu il ferme un Rapport, avant la suppression, J ai une erreure 1004 : l application ou l objet est mal definit. En fait cela vient du fait que j essai de modifier une cellule protegee... Or une ligne de code avant je demande a Excel d enlever la protection... J ai fait un test pour savoir si la protection est enleve, et magie! Excel me dit que oui, alors que je sais tres bien que non.
Private Sub EndFile()
Module1.UnProt
Workbooks("Report").Worksheets("Report").Cells(1, 35).Value = 1
Application.Calculation = xlCalculationManual
If SheetTrue(ThisWorkbook, "DataReport") Then
Application.DisplayAlerts = False
Workbooks("Report").Worksheets("DataReport").Delete
End If
If SheetTrue(ThisWorkbook, "Calendar") Then
Application.DisplayAlerts = False
Worksheets("Calendar").Unprotect Password = "password"
Workbooks("Report").Worksheets("Calendar").Delete
End If
Do While Workbooks("Report").Worksheets("Report").Cells(7, 2) <> "" Or Workbooks("Report").Worksheets("Report").Cells(7, 9) <> ""
Workbooks("Report").Worksheets("Report").Rows(7).Delete
Loop
Workbooks("Report").Worksheets("Report").Rows(7).Delete
Workbooks("Report").Worksheets("Report").Cells(3, 1).Value = ""
Workbooks("Report").Worksheets("Report").Cells(3, 3).Value = ""
Workbooks("Report").Worksheets("Report").Cells(3, 5).Value = ""
Workbooks("Report").Worksheets("Report").Cells(3, 7).Value = ""
Workbooks("Report").Worksheets("Report").Cells(3, 13).Value = ""
Workbooks("Report").Worksheets("Report").Cells(3, 13).Interior.ColorIndex = 3
Application.Calculation = xlCalculationAutomatic
AddIns("Analysis ToolPak").Installed = False
Workbooks("Report").Worksheets("Report").Cells(1, 35).Value = ""
Module1.Prot
End Sub
Voici la macro qui se lance avant la fermeture, les sub Prot et Unprot, sont respectivement pour proteger et virer la protection. A vrai dire cette macro se lance derriere une userform pour que l utilisateur patiente durant la suppression...
Voila une bonne petite colle pour vous =D ! Merci d avance
Bon du coup si jamais qq un tombe sur le meme genre de probleme, j ai resolu le mien. Le probleme en fait ete lors de la fermeture il y avait trop de macros qui se lancaient en meme temps. J ai vu cela en virant toute les protections de mes feuilles, le probleme revenait sur la macro suivante... Au lieu d appeler des macros dans des macros, je les ai appelees une a une dans access...
En esperant que ca puisse servir a qq un...