N
nimbus le truand
Guest
Bonjour à vous tous !!
Je ne pratique pas souvent les forums mais aujourd'hui j’en ressens le besoin !! Je suis en stage et je crée une automatisation pour un fichier EXCEL avec VBA. Si je vous écris c’est pour avoir des commentaires sur mon code, voir des améliorations. Alors n’hésitez pas, CRITIQUEZ !!!
Explication de mon travail :
Un logiciel que nous allons appeler PB à la possibilité d’exporter en fichier Excel, ce fichier contient seulement une feuille avec un tableau (les noms des champs sont absents, il n’y a rien que les valeurs). Je copie donc ce tableau vers une fichier qui contient la macro ci-dessous qu’y c’est exécuté à ma demande ; et je le remet en forme avant de le sauvegarder sous un autre nom.
En résumer, j’ouvre le fichier contenant la macro puis je l’exécute. La macro récupère le tableau exporté et le remet en forme puis me propose de l’enregistrer sous un autre nom.
Voilà, j’espère avoir été assez clair, si vous avez des questions n’hésitez pas, je serai très content de vous répondre.
Merci d’avance pour toutes vos remarques que vous pourrez me donner.
Nimbus le Truand
P.S : voilà le code que j’ai créé et qu’il faudrait optimiser si possible.
Sub RemplissageTableau()
'
' RemplissageTableau Macro
'
' Macro enregistrée le 14/06/2004
' permettant le remplissage du tableau de 'Devis' par les valeurs exportées de PB sous la forme Excel
'**************** Travail sur le fichier d'exportation de PB ****************
' Définit le répertoire courant du fichier tampon (exportation PB)
ChDir "D:\Mes Documents"
' Ouvre le fichier tampon (exportation PB)
FileToOpen = Application.GetOpenFilename("Fichier Excel (*.xls), *.xls")
If FileToOpen = False Then Exit Sub
ThisWorkbook.FollowHyperlink FileToOpen
' Mise en forme "date de détection" de jj/mm/yyyy vers dd-mmmm-yy
Columns("J:J").Select
Selection.NumberFormat = "[$-40C]d-mmm-yy;@"
' Active le fichier tampon et copie la sélection
Selection.CurrentRegion.Select
Selection.Copy
'********************* Travail sur le fichier Devis Prototype *********************
' Active le fichier Devis (j’aimerai activer le fichier avec comme variable le fichier que j’ai ouvert contenant la macro VBA)
Windows("Issy devis.xls").Activate 'A changer en fonction du fichier concerné
' Colle la sélection
Range("A19").Select
ActiveSheet.Paste
' Remise en forme des données
Application.CutCopyMode = False
With Selection.Font
.Name = "Comic Sans MS"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
' Suppression des colonnes inintéressantes pour le tableau Devis
Columns("L").Select
Selection.ClearContents
' Création des bordures du tableau
Range("A19").Select
Selection.CurrentRegion.Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' Suppression de la ligne entre les titres et le tableau Devis
Rows("18:18").Select
Selection.Delete Shift:=xlUp
'******************* Sauvegarde le fichier Devis pour le Client *******************
' Définit le répertoire courant des fichiers clients
ChDir "D:\Mes Documents"
' Sauvegarde le fichier sous le nom courant du client
Application.Dialogs(xlDialogSaveAs).Show
' Change le numéro du Devis (est le même que le numéro du fichier)
Dim NumDevis As String
NumDevis = InputBox("Quel est le numéro du Devis ?")
If NumDevis = "" Then Exit Sub
Range("C2:C6").Select
ActiveCell.FormulaR1C1 = "DEVIS" & Chr(10) & "n° 0" & NumDevis
Sheets("issy devis 0").Name = "issy devis 0" & NumDevis
' Se met sur la date du devis pour modification
Range("C9").Select ‘ combinaison de ctrl + ; pour mettre la date du jour
End Sub
Je ne pratique pas souvent les forums mais aujourd'hui j’en ressens le besoin !! Je suis en stage et je crée une automatisation pour un fichier EXCEL avec VBA. Si je vous écris c’est pour avoir des commentaires sur mon code, voir des améliorations. Alors n’hésitez pas, CRITIQUEZ !!!
Explication de mon travail :
Un logiciel que nous allons appeler PB à la possibilité d’exporter en fichier Excel, ce fichier contient seulement une feuille avec un tableau (les noms des champs sont absents, il n’y a rien que les valeurs). Je copie donc ce tableau vers une fichier qui contient la macro ci-dessous qu’y c’est exécuté à ma demande ; et je le remet en forme avant de le sauvegarder sous un autre nom.
En résumer, j’ouvre le fichier contenant la macro puis je l’exécute. La macro récupère le tableau exporté et le remet en forme puis me propose de l’enregistrer sous un autre nom.
Voilà, j’espère avoir été assez clair, si vous avez des questions n’hésitez pas, je serai très content de vous répondre.
Merci d’avance pour toutes vos remarques que vous pourrez me donner.
Nimbus le Truand
P.S : voilà le code que j’ai créé et qu’il faudrait optimiser si possible.
Sub RemplissageTableau()
'
' RemplissageTableau Macro
'
' Macro enregistrée le 14/06/2004
' permettant le remplissage du tableau de 'Devis' par les valeurs exportées de PB sous la forme Excel
'**************** Travail sur le fichier d'exportation de PB ****************
' Définit le répertoire courant du fichier tampon (exportation PB)
ChDir "D:\Mes Documents"
' Ouvre le fichier tampon (exportation PB)
FileToOpen = Application.GetOpenFilename("Fichier Excel (*.xls), *.xls")
If FileToOpen = False Then Exit Sub
ThisWorkbook.FollowHyperlink FileToOpen
' Mise en forme "date de détection" de jj/mm/yyyy vers dd-mmmm-yy
Columns("J:J").Select
Selection.NumberFormat = "[$-40C]d-mmm-yy;@"
' Active le fichier tampon et copie la sélection
Selection.CurrentRegion.Select
Selection.Copy
'********************* Travail sur le fichier Devis Prototype *********************
' Active le fichier Devis (j’aimerai activer le fichier avec comme variable le fichier que j’ai ouvert contenant la macro VBA)
Windows("Issy devis.xls").Activate 'A changer en fonction du fichier concerné
' Colle la sélection
Range("A19").Select
ActiveSheet.Paste
' Remise en forme des données
Application.CutCopyMode = False
With Selection.Font
.Name = "Comic Sans MS"
.FontStyle = "Normal"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
' Suppression des colonnes inintéressantes pour le tableau Devis
Columns("L").Select
Selection.ClearContents
' Création des bordures du tableau
Range("A19").Select
Selection.CurrentRegion.Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlDouble
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
' Suppression de la ligne entre les titres et le tableau Devis
Rows("18:18").Select
Selection.Delete Shift:=xlUp
'******************* Sauvegarde le fichier Devis pour le Client *******************
' Définit le répertoire courant des fichiers clients
ChDir "D:\Mes Documents"
' Sauvegarde le fichier sous le nom courant du client
Application.Dialogs(xlDialogSaveAs).Show
' Change le numéro du Devis (est le même que le numéro du fichier)
Dim NumDevis As String
NumDevis = InputBox("Quel est le numéro du Devis ?")
If NumDevis = "" Then Exit Sub
Range("C2:C6").Select
ActiveCell.FormulaR1C1 = "DEVIS" & Chr(10) & "n° 0" & NumDevis
Sheets("issy devis 0").Name = "issy devis 0" & NumDevis
' Se met sur la date du devis pour modification
Range("C9").Select ‘ combinaison de ctrl + ; pour mettre la date du jour
End Sub