Tri + enregistrement en tant que fichier [Résolu]

Brudy

XLDnaute Junior
Bonjour à tous,

Je suis plongé dans excel depuis quelques jours et j'aime bien découvrir tout ce qu'il cache.

Avec l'aide de Theze présent sur le forum, j'ai réussis à mettre en place une macro qui fonctionne au poil,
cependant j'amerais découvrir un peu plus et notamment l'enregistrement d'un fichier à partir d'une macro.

Je m'explique : J'ai une base de donnée, basé sur le nom d'entrepot.
Theze m'a permis de trier cette base de donnée avec une macro, en créant une feuille par entrepot et en collant la ligne de donnée dans la feuille correspondante après validation.

Maintenant que mes données sont parfaitement trier, j'aimerais réussir à mettre une macro en place pour que mes données soit trier dans une nouvelle feuille, selon 2 critères pour me permettre de les mettres en forme, puis d'enregistrer cette feuille en fichier pour pouvoir l'envoyer.

Les 12 travaux d'hercule en soit pour un novice en VBA !

En tout cas, merci à tout ceux qui vont laisser un peu de leur temps sur mon soucis, et surtout merci à tous d'avance.

Je vous joint mon fichier exemple, plus parlant.
 

Pièces jointes

  • Exemple tri+enregistrement.xlsm
    15.4 KB · Affichages: 58

Staple1600

XLDnaute Barbatruc
Bonjour à tous

Brudy
Il aurait peut-être utile de laisser la macro de Theze dans ton fichier,non ?
Histoire d’appréhender l'ensemble du process.

En attendant de voir le code Theze reintégré ton ficheir exemple
Voici une macro pour la partie Recherche, Affichage
VB:
Sub a()
Dim DL&
Dim Crit1 As Range, Crit2 As Range
Set Crit1 = Sheets("Envoie").[F7]
Set Crit2 = Sheets("Envoie").[K7]
With Sheets("Base")
DL = .Cells(Rows.Count, 2).End(xlUp).Row
    With .Range("$B$5:$I$" & DL)
        .AutoFilter Field:=1, Criteria1:=Crit1.Text
        .AutoFilter Field:=6, Criteria1:=Crit2.Text
     End With
End With
Sheets("Base").AutoFilter.Range.Offset(1).SpecialCells(12).Copy
Sheets("Envoie").[D13].PasteSpecial xlValues
Application.CutCopyMode = False
Sheets("Base").Range("$B$5:$I$" & DL).AutoFilter
End Sub

Pour ce qui est d'enregistrer, la feuille en tant que nouveau classeur, c'est simple
Tu as deux options
1) Chercher dans les archives du forum, les discussions qui traitent de cette question.
(j'ai vérifié, elles sont nombreuses ;))
2) Utiliser l'enregistreur de macros en faisant manuellement ceci:
Clic-droit sur l’onglet Envoie
-> Copier ou Déplacer
-> cocher Copier et choisir Nouveau Classeur​

Dans les deux cas, il te faut mettre les mains dans le cambouis, et tout bien pesé, on est loin, très loin même, des 12 travaux d'Hercule, non ? o_O
 
Dernière édition:

Brudy

XLDnaute Junior
Bonjour Staple,

Tout d'abord merci pour ta réponse et désolé de ma réponse aussi tardive ! J'avais aucun accès à mon tableau avec la macro de Theze. Je te le joint donc.

En ce qui concerne les 12 travaux d'hercules, si la logique du VBA n'est pas assimilée cela reste un monde compliqué ;)

J'essaye d'assimiler ton développement pour comprendre comment il ce comporte
 

Pièces jointes

  • Fichier test Soluce.xlsm
    189.9 KB · Affichages: 56

Brudy

XLDnaute Junior
j'ai avancé sur ma création/enregistrement du fichier

Je suis donc partis de l'enregistrement de macro, pour créer une copie de ma feuille en pdf dans un fichier donné.

Cependant, j'avais réussis à appliquer, en bidouillant sur une autre macro, un nom de fichier pdf spécifié par les cellules F et K 7.
Dans la macro enregistré je m'y perd..

J'ai modifié comme suit mais plus aucune réponse :/ En gras ce que j'ai modifié pour tenter une solution Impossible dans le code, donc j'ai modifié :
Chemin = "C:\Users\ybruzac\Desktop\Récap Entrepot"
texte = Range("entrepot") & " - " & Range("semaine")

ET
Filename:=Chemin & texte


VB:
Sub Macro3()
'
' Macro3 Macro
'

'
    Sheets("Envoi").Select
    ActiveSheet.Buttons.Add(792.75, 86.25, 131.25, 30.75).Select
    Sheets("Envoi").Copy
    Application.Run Range("ScOnWindow")
    Sheets("Envoi").Select
    Chemin = "C:\Users\ybruzac\Desktop\Récap Entrepot"
    texte = Range("entrepot") & " - " & Range("semaine")
    Application.DisplayAlerts = False

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & texte, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Range("K18").Select
    Application.WindowState = xlNormal
    Application.WindowState = xlMinimized
    Windows("Fichier Test Facture GMF.xlsm").Activate
    Application.Run Range("ScOnWindow")
    Windows("Classeur1").Activate
    ActiveWindow.Close
    Application.Run Range("ScOnWindow")
    Application.WindowState = xlMaximized
    ActiveSheet.Shapes("Button 1").Select
    Selection.OnAction = "Macro3"
    Range("M19").Select
    ActiveSheet.Shapes("Button 1").Select
    Application.Goto Reference:="Macro3"
    ActiveWorkbook.Save
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Bouton 1"
    With Selection.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = 2
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("L17").Select
    ActiveSheet.Shapes("Button 1").Select
    Selection.OnAction = "Macro3"
    Range("D26:D27").Select
    Sheets("PENALITE").Select
    Application.WindowState = xlMinimized
    Sheets("Envoi").Select
    ActiveSheet.Shapes("Button 1").Select
    Selection.OnAction = "Macro3"
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Bouton 1"
    With Selection.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = 2
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("N10").Select
    ActiveSheet.Shapes("Button 1").Select
    Application.Goto Reference:="Macro3"
    ActiveWorkbook.Save
    ActiveSheet.Shapes("Button 1").Select
    Selection.Characters.Text = "Bouton 1"
    With Selection.Characters(Start:=1, Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = 2
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("P10").Select
    ActiveSheet.Shapes("Button 1").Select
    Application.Goto Reference:="Macro3"
    Range("J17").Select
    ActiveWindow.SmallScroll Down:=-9
    ActiveSheet.Shapes("Button 1").Select
    Application.Goto Reference:="Macro3"
    ActiveWorkbook.Save
    Range("Q9").Select
    Application.WindowState = xlMinimized
    Range("F20").Select
    ActiveWindow.SmallScroll Down:=-6
    Sheets("Envoi").Select
    Range("F19").Select
    ActiveWorkbook.Save
    Range("F7").Select
    ActiveCell.FormulaR1C1 = "Nantes"
    Range("K7").Select
    ActiveCell.FormulaR1C1 = "17"
    Range("M10").Select
    ActiveSheet.Shapes("Button 1").Select
    Application.Goto Reference:="Macro3"
End Sub


PS : 16h12, je sais pas ce que j'ai fait mais je me retrouve maintenant avec une macro bugué, et le un fichier qui ce créer a chaque clic sur le bouton :eek:
 
Dernière édition:

Discussions similaires