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 :

Formule à exporter via macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par défaut Formule à exporter via macro
    Bonjour,

    Je viens à vous car mon chef me demande de faire une macro pour excel et je n'y connais rien (c'est la première fois que je touche à de la macro sous excel et au VBA). J'essaie de créer un bouton "Dispatch" qui permet permet d’éclater les données d'une feuille en autant de fichier qu'il y a d’occurrence dans une colonne et à inserer dans le dit fichier toutes les lignes qui contiennent cette occurence. Jusque là "facile". j'ai trouvé un petit projet qui m'a bien guidé.

    Ma question porte sur une colonne qui contient une formule. Dans le dit tableau il y a les semaines et chaque semaine une ressource doit saisir dans son fichier le temps consacré à la tache (colonne H à BH). Une colonne (G) contient la formule qui m'ajoute le temps de chaque semaine.

    Mais le souci est que lors de mon dispatch, je transfere dans le fichier créé la colonne G contient le temps dans ma source initiale (0 donc) et non la formule a appliquer sur les cellules de mon tableau de destination...

    Je vous joins ici mon code :

    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
    Option Explicit
    Public critere%
     
    Sub dispatcher()
    Dim Tbl As Variant, data As Variant, I%
    Dim dico1 As Object, cle1 As Variant, result1 As Variant
    Dim wb As Excel.Workbook
    Dim MonRepertoire, Repertoire As FileDialog, racine As String
    Dim colonne$
     
        'colonne = Application.InputBox("Entrez la colonne servant de critère de dispatching : ", "Saisie en texte (i.e : A B ...)", Type:=2)
        'critere = ActiveSheet.Columns(colonne).Column
        UserForm1.Show
        If critere = 0 Then Exit Sub
     
        racine = Split(ThisWorkbook.Name, ".")(0)
     
        Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
        Application.FileDialog(msoFileDialogFolderPicker).Title = "Choix du répertoire de stockage des fichiers générés"
        Repertoire.Show
        If Repertoire.SelectedItems.Count = 0 Then Exit Sub
        MonRepertoire = Repertoire.SelectedItems(1)
     
        data = Cells(Rows.Count, 1).End(xlUp).CurrentRegion
     
        Set dico1 = CreateObject("Scripting.Dictionary")
        For I = LBound(data) + 1 To UBound(data) ' hors en-tête
            dico1(data(I, critere)) = ""
        Next
     
        Application.ScreenUpdating = False
        For Each cle1 In dico1.Keys
            result1 = filtreArray(data, critere, cle1)
            Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & "Model.xlsx")
            wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(UBound(result1, 1), UBound(result1, 2)) = result1
            wb.SaveAs (MonRepertoire & "\" & racine & "_" & cle1 & ".xlsx")
            wb.Close
            Set wb = Nothing
        Next
        Application.ScreenUpdating = True
     
        MsgBox "Terminé, fichiers sauvegardés sous """ & MonRepertoire & "\" & """ !"
    End Sub
    Voici qq données (fichier source simplifié)
    Ligne 4 (en-tetes) : A: Taches ; F : Ressources; G : Total d'heure, H : Semaine 1, I : Semaine 2 ....BH : Semaine 53
    Ligne 5 : Tache 01; Alpha; =SOMME(H5:BH5); (0partout apres)
    Ligne 6 : Tache 02; Alpha; =SOMME(H6:BH6); (0Partout apres)
    Ligne 7 : tache 03; Beta; =SOMME(H7:BH7)
    Ligne 8 : Tache 04; Alpha; =SOMME(H8:BH8)

    Fichier destination attendu Alpha.xlsx:
    Ligne 4 : A: Taches ; F : Ressources; G : Total d'heure, H : Semaine 1, I : Semaine 2 (en tetes)....BH : Semaine 53
    Ligne 5 : Tache 01; Alpha; =SOMME(H5:BH5); (0partout apres)
    Ligne 6 : Tache 02; Alpha; =SOMME(H6:BH6); (0Partout apres)
    Ligne 7 : Tache 04; Alpha; =SOMME(H7:BH7)
    (et quand j'insere 2 en colonne H4 et 28 en L4 je veux par la suite avoir G4 = 30)


    Ma question est donc : Comment faire pour que le contenu de ma cellule G de mon fichier de destination contienne la formule à appliquer sur les colonne de la feuille créée par ma macro de Dispatch ? et surtout où l’insérer dans le code présenté.

    merci de votre aide.

    Nid4mail

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    Citation Envoyé par nid4mail Voir le message
    Bonjour,

    Je viens à vous car mon chef me demande de faire une macro pour excel et je n'y connais rien (c'est la première fois que je touche à de la macro sous excel et au VBA)[...]
    Change de chef, car si ce que tu racontes est réel, ce "chef" n'en a pas du tout l'étoffe.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Salut
    Change de chef, car si ce que tu racontes est réel, ce "chef" n'en a pas du tout l'étoffe.
    Les chefs, c'est comme la famille... on les choisit pas. Le boulot demandé est interessant si ce n'est ce pb de macro qui est une infime partie de tout le projet.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Perso, je transférerais les données dans des nouveaux documents dont une colonne reprendrait déjà la formule incriminée (pour autant qu'elle n'aille pas chercher des données ailleurs que dans le classeur actif). Evidemment, ces classeurs "éclatés" auraient été conçus pour recevoir les données.

    Règle de base: On transfère des données, pas des formules. A charge pour le "receveur" de recréer ses propres formules et traitements par la suite.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2011
    Messages : 89
    Par défaut
    Dans mon fichier modele il y a les colonnes avec en-tetes. je ne vois pas ce que tu veux dire ou mettre les formules. peux tu me donner un exemple?

Discussions similaires

  1. import et export via macro
    Par etudiant20 dans le forum Macros Access
    Réponses: 0
    Dernier message: 13/06/2019, 23h58
  2. Réponses: 7
    Dernier message: 16/06/2014, 15h29
  3. Réponses: 0
    Dernier message: 13/05/2014, 16h09
  4. [XL-2003] Ecrire une formule avec "" via une macro
    Par gbbtt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/06/2012, 16h18
  5. [VBA/Excel] Formule via macro
    Par UNi[FR] dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/10/2005, 15h11

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