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 :

Créer fichier Excel sur le bureau via VBA + remplir des données


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Septembre 2023
    Messages : 1
    Par défaut Créer fichier Excel sur le bureau via VBA + remplir des données
    Bonjour à tous,

    En PJ mon fichier. Un membre a fait une super macro dedans pour créer des fichiers directement sur le bureau (attention plusieurs utilisateurs sur plusieurs pc différents) si pas déjà créer.

    fichier-test (2).xlsm
    Le sujet aujourd'hui c'est de modifier un peu le code.

    Dans le dossier "Panpan" il doit créer à la racine du dossier un fichier Excel se nommant "Migration" et doit mettre dans les cellules suivantes ces données (ceci sera fait uniquement à la création du fichier pas besoin de le refaire à chaque fois) :

    A1 : Test 1

    A2 : Test 2

    A3 : Test 3

    Si ce fichier existe déjà alors il passe à la suite.

    Ensuite, il vient chercher les cellules de A43 à L43 de la feuille "données" du classeur fichier-test-2 il ouvre le fichier "Migration", il les colles sur la dernière ligne vide du fichier "Migration".

    Puis il enregistrer le fichier Migration et il le ferme.

    Le but c'est que à chaque fois qu'on fait un instrument il vienne remplir le fichier Migration.

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 423
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 423
    Par défaut
    Bonjour,

    Je ne suis pas tout à fait certain d'avoir compris la demande, mais voici toujours ce que j'en ai déduis. J'en ai profité pour nettoyer le code initial.
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Option Explicit
     
    Sub Test()
        Dim CheminBureau As String
        Dim CheminDossierBase As String
        Dim CheminDossierClient As String
        Dim CheminDossierDate As String
        Dim nomFichier As String
        Dim CheminFichierExcel As String
        Dim CheminFichierPDF As String
     
        CheminBureau = Environ("UserProfile") & "\Desktop\"
     
        CheminDossierBase = CheminBureau & "panpan"
        DossierOK CheminDossierBase
     
        Worksheets("données").Select
     
        CheminDossierClient = CheminDossierBase & "\" & Range("G1")
        DossierOK CheminDossierClient
     
        CheminDossierDate = CheminDossierClient & "\" & Year(Range("F1"))
        DossierOK CheminDossierDate
        DossierOK CheminDossierDate & "\Certificats"
        DossierOK CheminDossierDate & "\Fichiers Excel"
     
        If Range("C6") = "" Then
            nomFichier = Range("H1") & "_" & Range("C1") & "_" & Range("C4")
        Else
            nomFichier = Range("H1") & "_" & Range("C1") & "_" & Range("C4") & "_" & Range("C6")
        End If
     
        CheminFichierExcel = CheminDossierDate & "\Fichiers Excel\" & nomFichier & ".xlsm"
        ActiveWorkbook.SaveAs Filename:=CheminFichierExcel
     
        CheminFichierPDF = CheminDossierDate & "\Certificats\" & nomFichier & ".pdf"
        Worksheets("1ère Page").ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminFichierPDF
     
    End Sub
     
    Sub DossierOK(sDossier As String)
        If Dir(sDossier, vbDirectory) = "" Then MkDir sDossier
    End Sub
     
    Sub Migration()
        Dim CheminDossierBase As String
        Dim CheminFichierMigration As String
        Dim rPlage As Range
     
        Set rPlage = ThisWorkbook.Worksheets("données").Range("A43:L43")
     
        CheminDossierBase = Environ("UserProfile") & "\Desktop\panpan"
        DossierOK CheminDossierBase
     
        CheminFichierMigration = CheminDossierBase & "\Migration.xlsx"
     
        If Dir(CheminFichierMigration) = "" Then
            '--- le fichier Migration.xlsx n'existe  pas encore, le créer et le compléter
            Workbooks.Add.SaveAs Filename:=CheminFichierMigration
            Sheets("Feuil1").Select
            Range("A1") = "Test 1"
            Range("A2") = "Test 2"
            Range("A3") = "Test 3"
        Else
            '--- le fichier Migration.xlsx existe
            Workbooks.Open CheminFichierMigration
            Sheets("Feuil1").Select
        End If
     
        '--- copier la plage sous les lignes précédentes
        rPlage.Copy Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
        Set rPlage = Nothing
     
        ActiveWorkbook.Close savechanges:=True  '--- fermer avec sauvegarde
     
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/06/2018, 17h00
  2. Ouvrir un fichier excel en lecture seule via VBA
    Par mbellemax dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/12/2017, 13h35
  3. [XL-2010] Créer une alerte sur le bureau(fichier Excel)
    Par mika70 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2013, 11h18
  4. créer fichier csv SUR LE SERVEUR via un fichier php
    Par jonusbaum dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 13/10/2010, 17h56
  5. Réponses: 1
    Dernier message: 01/04/2010, 22h23

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