comment transformer du code vba en code c

P

pascal

Guest
sujet: j'ai programme de 10ko en excel ceux qui fait lourd pour mon serveur puisque je l'enregistre 20 x par jour sous un nom different
donc je recherche comment faire pour le rendre plus leger, soit le transformer ou autre merci de suggestion
pascal
 
@

@+Thierry

Guest
Salut Pascal

Humm du VBA en C ! pas vraiment la même chose et surtout pas vraiment le même usage !!!

Non si je comprends bien tu fais un Save As une vingtaine de fois par jour d'un classeur "Maître" contenant tous tes codes VBA... Donc je pense que le mieux est de réfléchir un peu à tes besoins....

Exemples :

K 1 Tes classeurs sauvés, n'ont plus besoin de Macro, car ce ne sont que des données que tu mets à jour une vingtaine de fois par jour... Donc fait une recherche dans ce forum à "Suppression Macro"...

K 2 Tes classeurs doivent conserver que certaines petites macros, donc tu ne sauve que les feuilles concernées dans un nouveau classeur (voir juste mon précédent post pour cOx)

K 3C'est un peu un "Mixte" des exemple K1 / K2, tu ne sauve que des feuilles dans un nouveau classeur ne contenant aucune macro 20 fois par jour... Ensuite tu peux avoir ton Classeur "Maître" qui seul lui contiendra toutes tes macro et qui "pilotera" tous tes classeurs sauvés par copie de feuilles...

Enfin ce ne sont que des suggestions... Il y a d'autres possibilités sûrement, mais c'est ce qui me vient à l'esprit en te lisant.

Bonne Journée
@+Thierry
 
@

@+Thierry

Guest
Re Pascal, le Forum

Huum, suite à ton mail direct dans ma BAL et ma réponse, tu n'as pas bien compris un truc, pourtant dans mon mail, tu avais bien le lien sur La Charte d'XLD....

Si tu ne détailles pas plus, comment veux-tu que l'on te réponde ? Je n'en sais rien moi de ce que tu fais comme travail et de quelle nature ni de quelle structure sont tes fichiers !!

Tu n'as même pas répondu/confirmé si tu fesais un save as de tes fichiers?

Bon voici déjà un code que j'utilise pour sauver une page d'un classeur de manière automatique dans un répertoire dédié... Mais vu que je ne sais même pas tes aptitude en VBA, ce n'est pas évident de savoir si tu vas t'en sortir... (Pour que çà fonctionne il faut que tu indiques un nom valide en cellule A1)

Sub CopieSauvegardeFeuille()
Dim Chemin As String
Dim NomFile As String
Dim NomUser As String
Dim LaDate As String


On Error GoTo RepertoireExistant:
MkDir "c:\Mes Documents\Sauvegarde\"
RepertoireExistant:

NomUser = Sheets("Feuil1").Range("A1")
If NomUser = "" then Exit Sub
LaDate = Format(Now, "YY-MM-DD HH-MM-SS")
Chemin = "c:\Mes Documents\Sauvegarde\"
NomFile = Chemin & "Sauvegarde " & NomUser & " " & LaDate & ".xls"

Worksheets("Feuil1").Copy
With ActiveWorkbook
.SaveAs NomFile
.Close 0
End With
MsgBox "Votre fichier a bien été sauvé sous ce Chemin : " & _
vbCrLf & NomFile, vbInformation, "Fichier Sauvegardé"
End Sub


Ensuite voici un code que j'utilise pour remonter tous les fichiers sauvegardés dans ce répertoire :

Sub Liste_Fichiers()
Dim ChercheFichier As FileSearch
Dim Chemin As String
Dim I As Integer
On Error Resume Next
Set ChercheFichier = Application.FileSearch
Chemin = "C:\Mes Documents\Sauvegarde\"
With ChercheFichier
.NewSearch
.Filename = "*.xls"
.LookIn = Chemin
.SearchSubFolders = False
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
Sheets("Liste").Cells(I, 1).Value = Dir(.Item(I))
Next I
End With
Else
MsgBox "Pas de Fichier trouvé dans " & Chemin
End If
End With
Set ChercheFichier = Nothing
End Sub

Donc avec ces deux codes (placés dans le Fichier Maître), tu as déjà le moyen de saugarder une feuille sans macro dans un répertoire dédié (créé automatiquement "C:\Mes Documents\Sauvegarde\") et ensuite le moyen de remonter dans une feuille nommée "Liste" tous les nom de fichiers ainsi créés...

Ensuite c'est une question de UserForm (par Exemple) qui te permettrait d'ouvrir tel ou tel fichier et de travailler dessus puisqu'ils ont la même structure... Mais là c'est une autre étape... Et il faudrait franchement que tu soies beaucoup plus détaillé et que tu indiques les méthodes que tu as déjà appliquées, ainsi que ton niveau de connaissance VBA...

Bon Dimanche
@+Thierry
 
P

pascal

Guest
désole, pour moi c'etait clair dans ma tête,

je m'explique,

mon métier consiste à planifier la mise en oeuvre de meubles et pour cela j'ai consu un programme listing du materiel qui nous permet de partir du dessin jusqu'à la livraison du matériel. j'ai appris vba seul sans court et j'essaie de me débrouiller avec internet pour trouver des réponses et des solutions.


je travail depuis 1 année sur ce programme, qui fait 10 mo lors de l'enregistrement (environ 17000 calcules), et mon serveur ne peut supporter un enregistrement de 20 x par jour le disque dur serrait vite plein

le programme:
exemple; le meuble fait 850/505/450, ca me sort le matériel que j'ai besoin pour le fabriquer( tous cela avec macro).
en ayant remplis ma liste, une macro enregistre le" nom "et le numero "client" comme nom du fichier pour le stock ( qui est detruit des reception usine) et une deuxieme fois en sauvegarde pour la facturation, de plus j'imprime pour le suivis, le nombre de page que nous avons besoin,

mais voila c'est trop lourd, donc je dois zipper les fichiers une fois par semaine pour les rendre plus léger

ce que je recherche, c'est de pouvoir enregistrer mon fichier en l'allegent et de pouvoir le réutilise avec les macros pour le modififier


merci a vous
pascal
 
@

@+Thierry

Guest
Salut Pascal, le Forum

J'avais un peu zappé ton prblème puis aujourd'hui j'ai eu à faire une démo pour une gestion des données provenant d'autres classeurs...

Ce n'est certe pas exactement la réponse à ton problème, mais je te suggère de bien regarder tout de même cette démo, car je montre comment "piloter" des données provenant de differents classeurs à travers un seul et unique programme...

Donc tu es invité pour => Lien supprimé

Bonne Soirée
@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
313 030
Messages
2 094 571
Membres
106 054
dernier inscrit
Mohajer