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 :

modification macro VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2021
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 84
    Par défaut modification macro VBA
    Bonjour à tous,

    j'ai une macro qui fonctionne comme il faut dans un cadre précis.
    Je souhaiterai savoir s'il est possible d'élargir ce cadre un petit peu.

    mon fichier macro : PRADEAU2.xlsm

    Le fichier source dont le contenu doit être collé en feuil1 du fichier précédant : source.xlsx

    Dans ce fichier, j'ai le mois et l'année des écritures qui suivent en E3, la macro est faite de façon a créer les dates en associant le jour (colonne A) et le mois et l'année (cellule E2)


    Je souhaiterai savoir si c'est possible de faire le même système avec ce fichier là : source2.xlsx

    Dans ce fichier, le mois et l'année ne sont plus uniquement renseignés en E2 mais quelques part dans la colonne E et a plusieurs reprises.

    Est ce qu'il est possible de créer comme le fait la macro actuelle, la liste des écritures avec les bonnes dates dans la feuille RESULTAT.

    Je crois que c'est Philippe TULIEZ qui m'avait aidé pour cette première macro.

    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    oui ça me semble totalement faisable.
    Dans l'idée, parcourir la colonne E, si la cellule est une date, calculer la date à partir de la colonne A (Jour date= A, Mois Date et Année Date = Mois (E) et Année (E) comme fait actuellement, mais en changeant la référence de la cellule E2 par une référence "dynamique" changeant chaque fois que l'on rencontre une date.

    Que veux faire des Totaux mensuels ?
    Actuellement tu copies les données dans la Feuil1 puis tu appuis sur le bouton ? et la feuille PRADEAU sert de feuille de calcul ?
    quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    For i = 1 to lastrow
        if isDate(ActiveSheet.Range("E" & i)) then 'si la cellule Ei est une date, 
            For j=i+1 to lastrow
                if activesheet.range("A" & j).value <> "" then 'et si la cellule A(i+1) est non vide
                     'on calcule la date que l'on met dans la cellule Aj
                     activesheet.range("A" & j).Value=DateSerial(year(activesheet.range("E" & i)),month(activesheet.range("E" & i)),activesheet.range("A"&j)))
                else 
                     Exit For 'si pas de valeur dans la cellule Aj, on sort de la boucle de création de la date actuelle
                end if
           Next j
           i=j 'on actualise l'indice i (on passe directement à la cellule E de la ligne suivant la fin de la zone
        End If
    Next i
    à voir à intégrer au code existant

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2021
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 84
    Par défaut
    Bonjour et merci pour ce retour.

    En fait je me suis servi d'une 1ere macro pour mettre sous un format qui me convenait à l'origine dans la feuille RESULTAT.

    Dans un second temps, j'ai eu une autre problématique et je me sert de la feuille résultat pour transformer le format dans un nouveau pour ensuite l'enregistrer dans un fichier txt.

    il faut que je me penche sur comment l'intégrer.
    Je reviens rapidement vers vous.

    Merci encore.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    l'idéal serait de connaitre l'organisation des fichiers de départs et d'avoir l'aspect final et de faire la macro en conséquence plutôt que passer des étapes intermédiaires qui n'apportent pas forcément grand chose au besoin (sauf si tu veux avoir avoir une étape intermédiaire précise, mais pour mais ça rentrerai dans l'aspect final).

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Avril 2021
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2021
    Messages : 84
    Par défaut
    @umfred,

    le résultat final doit être celui ci : Ecritures.txt

    En considérant que le fichier d'origine est le fichier Source donné dans mon 1er message ici.

    L'idée est d'obtenir la même chose avec le fichier Source2 de mon 1er message.

    En gros, c'est une construction du fichier .txt séparateur "," final depuis le contenu du fichier source2.
    il faut :
    - que le libellé soit entre des "" (colonne E du fichier source)
    - le séparateur décimal devienne des "." au lieu de la ","
    - le format de date doit être sous le format JJMMAAAA (composé à partir du jour (colonne A du fichier source) et du mois et année cellule EX (colonne E du fichier source))
    - supprimer les lignes Total chaque fois qu'il y en a
    - modifier ce qu'il y a en cellule DX en 70 quand en EX il y a une date
    - ajouter sur le fichier final une ligne d'entête : ###EBPPivotV1
    - dans la colonne D, modifier les 401 en F et les 411 en C
    - que chaque ligne du fichier texte à partir de la ligne 2 soit numérotée de 1 à X, X étant le nombre total de ligne. Et ce dans la colonne A du tableau final.

    Je pense avoir repris tout ce qu'il faut. J'espère que je suis assez clair.

    Merci d'avance.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Tu es sûr que tu n'as pas besoin d'entêtes de noms de colonnes dans ton fichier final? (dire que la colonne 1 est un index, en 2 la date (JJMMAAAA), en 3, le journal, en 4 le compte, en 6 le libellé, en 7 la pièce, en 8 la somme et en 9, le type.
    Dans ton fichier, il y a une colonne vide entre le compte et le libellé, et une colonne vide à la fin, les virgules délimitent des colonnes de données.
    Y a-t-il vraiment une utilité à mettre les guillemets autour du libellé ?
    Le séparateur décimal dépend en grande partie du celui défini sur Windows (chez moi, je le change directement dans mes options régionales).
    Je vais essayer de regarder cet après-midi.
    Mon code va se baser sur le code déjà fourni, je vais juste étoffer ce que je fais dans le if je pense (+ la création du fichier final)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] Modification Règles de mise en forme conditionnelle via Macro VBA?
    Par VinciCG dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/03/2019, 19h17
  2. Modification de plage d'application macro VBA
    Par fafri dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/06/2018, 09h39
  3. Modifications macro vba
    Par sébastien1208 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 12/12/2017, 12h53
  4. [WD-2003] Modification Macro VBA avec ajout BORDURE EXTERIEURE
    Par Aguire_ dans le forum Word
    Réponses: 0
    Dernier message: 09/10/2015, 10h59
  5. modification de macro VBA
    Par mayc5364 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/09/2009, 12h05

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