IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Enregistrer un fichier connaissant son nom mais pas son emplacement d'enregistrement


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2013
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Enregistrer un fichier connaissant son nom mais pas son emplacement d'enregistrement
    Bonjour !
    Je suis un peu embêté car je souhaite sauvegarder un fichier sous un nom que je connais mais je voudrais pouvoir choisir le dossier d'enregistrement et ceci pour chaque enregistrement. Je vous joint le VBA déjà effectué.*
    En attente de vos réponses !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Macro1()
    '
    ' Macro1 Macro
    'Ouvrir une boîte de dialogue pour ouvrir un fichier
    Dim Nom As String
        Classeur = Application.GetOpenFilename()
        If Classeur = False Then Exit Sub
        Workbooks.Open Filename:=Classeur
    'Enregistre le nom du fichier ouvert
    Nom = ActiveWorkbook.Name
    'Convertir les virgules en nouvelles colonnes
      Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
            :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
            TrailingMinusNumbers:=True
    'Convertir les points en virgules
        Columns("C:AS").Select
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    'Enregistrer sur un fichier de nom connu
        Application.DisplayAlerts = False
        ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path & "\" & "Test.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
        Application.DisplayAlerts = True
    'Copier/Coller
        Windows("Test.xlsm").Activate
        Columns("C:AS").Select
        Selection.Copy
        Windows("Coucou.xlsm").Activate
        Sheets(1).Select
        Range("A1").Select
        ActiveSheet.Paste
    'Nomme l'onglet correspondant au fichier
        Sheets(1).Name = Nom
    'Ferme le fichier Test pour pouvoir l'écraser lors du traitement du prochain fichier
        Application.DisplayAlerts = False
        Workbooks("Test.xlsm").Close False
        Application.DisplayAlerts = False
    'Ouvre une boîte contextuelle pour enregistrer sous
        Application.Dialogs(xlDialogSaveAs).Show
    End Sub

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Ouvre un fichier, le transforme, copie les données dans le fichier contenant la macro (après transformation des donnée) Ferme le fichier ouvert sans sauvegarder et enregistrer sous le fichier contenant la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub Macro1()
    Dim Wbk As Workbook
    Dim Nom As String
    Dim Classeur
     
    'Ouvrir une boîte de dialogue pour ouvrir un fichier
    Classeur = Application.GetOpenFilename()
    If Classeur = False Then Exit Sub
    Set Wbk = Workbooks.Open(Classeur)
     
    'Convertir les virgules en nouvelles colonnes
    With Wbk.Worksheets(1)
        .Range("A:A").TextToColumns Destination:=.Range("A1"), _
                                    DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
                                    ConsecutiveDelimiter:=False, Tab:=True, FieldInfo:=Array(Array(1, 1), _
                                                                                             Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), _
                                                                                             TrailingMinusNumbers:=True
        'Convertir les points en virgules
        With .Range("C:AS")
            .Replace What:=".", Replacement:=",", LookAt:=xlPart
            .Copy ThisWorkbook.Worksheets(1).Range("A1")
        End With
        .Name = Wbk.Name
    End With
    Wbk.Close False
    Set Wbk = Nothing
     
    'Enregistrer sur un fichier de nom connu
    Application.Dialogs(xlDialogSaveAs).Show
    End Sub

Discussions similaires

  1. [PPT-2007] Aller sur une diapositive d'après son nom et pas son numéro
    Par Carlos31 dans le forum Powerpoint
    Réponses: 5
    Dernier message: 20/12/2014, 20h27
  2. Réponses: 4
    Dernier message: 02/08/2010, 11h20
  3. Réponses: 6
    Dernier message: 13/06/2007, 09h05
  4. Réponses: 3
    Dernier message: 05/03/2007, 11h13
  5. Upload 1 fichier,seulement son nom et pas toute l'adresse
    Par nebil dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/04/2006, 15h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo