cs_mike42
Messages postés16Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention11 juillet 2006
-
10 juil. 2006 à 10:54
cs_mike42
Messages postés16Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention11 juillet 2006
-
11 juil. 2006 à 11:38
Bonjour,
Pour réaliser la traçabilité de pièces, je réalise un archivage à chaque fois qu'une pièce sort de la ligne d'assemblage.
Pour Réaliser ceci , j'appelle un fichier excel archive avec une macro qui me permet de charger mes données de la pièce puis d'enregistrer un nouveau fichier avec le nom de la piece. ( fonction SaveAs).
Le problème est que la macro est enregistrée avec le nouveau fichier que j'enregistre.
Je ne voudrais pas que cette macro soit enregistrée avec.
Comment faire pour enregistrer mon nouveau fichier Excel avec seulement mon tableau Excel et pas la macro?
cs_mike42
Messages postés16Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention11 juillet 2006 10 juil. 2006 à 13:58
Je vois ta petite feinte mais je peux pas utiliser cette technique.
Je dois avoir un fichier Excel par code commande pour ma tracabilité.
J'attends que tu me mettes le code pour supprimer du code.
MsgBox "Le Module a été suprimer"
ActiveWorkbook.Close True
Exit Sub
ErrHandle:
MsgBox "ERREUR dans la suppression du Module", vbOKOnly + vbCritical
End Sub
'*** 2 NDE POSSIBILITE : SUPPRESSION CODE DANS OBJET ***
Sub EffaceCodeObjet()
Workbooks.Open ("C:\Documents and Settings\Nic\Bureau\Test Suppr.xls") _
On Error GoTo ErrHandle
' l'exemple au dessous c'est pour effacer le code dans Module1 (tu peux faire pareil
'en remplacant 'Module1' par 'UserForm1', 'Class1'.(met les noms que tu as mis))
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines
End With
MsgBox "Le code du Module a été suprimer"
ActiveWorkbook.Close True
Exit Sub
ErrHandle:
MsgBox "ERREUR dans la suppression du code du Module", vbOKOnly + vbCritical
End Sub
'*** 3 EME POSSIBILITE : SUPPRESSION CODE DANS THISWORKBOOK_OPEN ***
Sub EffaceCodeThisWorkBook()
Dim xlApp As New Excel.Application
Dim xlBook As Workbook
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open("C:\Documents and _
Settings\Nic\Bureau\Test Suppr.xls")
xlApp.Visible = True
xlBook.Close True
Set xlBook = Nothing
Set xlApp = Nothing
'En utilisant cette procédure pour effacer dans ThisWorkbook_Open,
'il faut absolument placer ce code ci-dessous dans ThisWorkbook_Open
'du classeur original, en premier dans la pocédure
'If Application.Visible = False Then
' With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
' .DeleteLines 1, .CountOfLines
' End With
'End If
End Sub
'Voilà, j'y ai passé 2 heures avec les test mais je te remercie, car je n'avais que lit
'ces procédures sans les tester, et ça m'a appris des choses.
'D'ailleurs, je l'ai mis en source. ;-))
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_mike42
Messages postés16Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention11 juillet 2006 11 juil. 2006 à 08:34
Merci beaucoup pour cette belle recherche.
J arrive pas a appliquer la troisieme methode.
Ou place tu ce code dans ta macro "ThisWorbook"?
J'ai fait plusieurs essais mais j'y arrive pas. C'est trop la lutte.
Merci
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 11 juil. 2006 à 08:58
Salut,
dans l'éditeur VB d'Excel, dans le menu Outils, référence.
(c'est par ordre alphabétique)
Ensuite, dans ton fichier 'original', place
If Application.Visible = False Then
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Dans ThisWorkBook_Open, en tout premier (avant tes codes)
Le reste :
Dim xlApp As New Excel.Application
Dim xlBook As Workbook
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False
Set xlBook = xlApp.Workbooks.Open("C:\Documents and _
Settings\Nic\Bureau\Test Suppr.xls")
xlApp.Visible = True
xlBook.Close True
Set xlBook = Nothing
Set xlApp = Nothing
doit être placé dans ta procédure, juste après avoir enregistré ton fichier par le 'SaveAs' et l'avoir fermé.
En gros, t'enregistre le fichier avec la date du jour, tu fermes ce fichier.
Tu le réouvres avec mon code (donc en invisible) et le code de suppression de la procédure s'execute.
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
cs_mike42
Messages postés16Date d'inscriptionmardi 27 juin 2006StatutMembreDernière intervention11 juillet 2006 11 juil. 2006 à 09:43
Je n'y arrive pas.
Mon programme plante méchamment.
Pour la reference je n'ai que la 5.3 de dispo et pas la 6.0
Début de mon prog :
Private Sub Workbook_Open()
If Application.Visible = False Then
With ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Voici la fin de mon pgm: ( ca plante ou a la ligne surlignée en rouge)