Création d'une macro Excel

Bonjour, je cherche à modifier un fichier excel source vers un fichier excel destination automatiquement, en remplaçant/supprimant certaines colonnes, modifiant certains intitulés de champs.
Comment cela est-ce possible ?
Merci par avance pour votre aide.

Cdt,

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour

    Comment cela est-ce possible ?

    Avec une demande aussi floue, cela n'est pas possible

    mrci d'^tre précis et exhaustif dans les explications
    par ex:
    certains'es) colonnes/intitulés ne veut rien dire: quelles colonnes quelq intitulés de champs (et où)au besoin:

    Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
    et coller le raccourci proposé (clic droit) dans le message de réponse

    1. Bonjour Michel,

      Désolée. Je vais essayer d'être plus explicite.
      Je reçois tous les jours un fichier excel que j'ai appelé Getplus_Extract (https://www.cjoint.com/c/EGhnhJWDScy qui renvoie des données avec les colonnes suivantes :
      - Company
      - Referrer Search
      - Action
      - Time Total
      - Webleads URL Site ID
      - Visit Date
      - Address
      - ZIP Code
      - City
      - Visitor Website
      - Staffing
      - NAF Code
      - NAF Label
      - SIREN

      J'aurai besoin de récupérer certaines de ces données dans un fichier excel (que j'ai appelé extract Fichier Notice 80 -> https://www.cjoint.com/c/EGhniOxXE4y comportant un bon nombre de colonnes. Ces colonnes doivent toujours être rangées dans le même ordre pour pouvoir ensuite être intégrer dans un outil spécifique.
      Ci-dessous, les équivalences des valeurs des champs entre les 2 fichiers :
      _ID (chiffre incrémenté aléatoirement)
      _S_SIRET = SIREN
      _S_RAISOC1 = Company
      _S_ADR1 = Address
      _S_CODPOS = ZIP Code
      _S_LIBCOM = City
      _S_APEN700 = NAF Code

      Je te remercie pour ton aide précieuse.

      Cdt,

      Donya
    2. Contributeur
      réponse de cjoint.com pour les 2 liens:
      Ce lien n'est pas ou n'est plus disponible

      et comme je pars demain en ouacances avec les valises encore à faire....
      mais quelqu'un sur ce site pourra te dépanner
  2. Bonjour
    D'abord, le fichier où se trouve les données à récupérer "Getplus_Extract.xlsx" (avec des données bidons).
    https://www.cjoint.com/c/EGji20M3QQw

    Puis le fichier qui va récupérer ces données "extract Fichier Notice 80.xlsm"
    https://www.cjoint.com/c/EGji3jxnTgw
    Principe: Ouvrez "Getplus_Extract.xlsx" puis à partir du bouton office, faire
    -Ouvrir "extract Fichier Notice 80.xlsm" (pour avoir les 2 fichiers dans la même session Excel)
    Cliquez sur le bouton pour rapatrier les données.
    Si ça marche bien, remplacez le fichier "Getplus_Extract.xlsx" par le votre.
    Cdlt
    1. Merci Frenchie83.
      Lorsque j'appuie sur le bouton de récupération des données, j'ai un message d'erreur : "Erreur d'execution '9': l'indice n'appartient pas à la sélection".
      Comment je peux faire pour déboger ?
      Merci par avance pour ton aide.

      Cdt,

      Donya
    2. @donyalAprès avoir cliquer sur débogage, sur quelle ligne s'arrête la macro?
    3. Sur cette ligne Frenchie83
      Set F2 = Application.Workbooks("Getplus_Extract.xlsx")
    4. C'est bien ce que je pensais, vous n'avez pas suivi la procédure que je vous ai donné.
      Les 2 fichiers doivent être ouvert dans la même session d'EXCEL avant de lancer la macro.
      je répète
      Ouvrez "Getplus_Extract.xlsx" puis à partir du bouton office (le bouton en haut à gauche) de la feuille excel,
      sélectionnez
      -Ouvrir "extract Fichier Notice 80.xlsm" (pour avoir les 2 fichiers dans la même session Excel) .
      cliquez sur le bouton
      essayez
    5. Bonjour Frenchie83,

      J'ai respecté tes consignes et pareil pour moi, cela ne marche pas. J'ai excel 2007.

      Cordialement,
      Excel-worker
  3. Bonjour,

    J'ai trouvé la solution !

    Le nom de tes fichiers a changé, vérifie bien que ton fichier s'appelle exactement :

    Fichier 1 : Getplus_Extract.xlsx
    Fichier 2 : extract Fichier Notice 80.xlsm

    Cordialement,
    Excel-Worker
    1. ça marche bien les amis, merci Excel-worker et Frenchie83.
    2. J'ai mis à jour le fichier Getplus_Extract à jour avec les données réelles : https://www.cjoint.com/c/EGkkOIKddxy

      Et générer la macro via le fichier ici : https://www.cjoint.com/c/EGkkP2qAhMy

      J'ai un message d'erreur qui apparait :
      Cells(DerLigF1, 3).Offset(1).Resize(d2.Count, 1) = Application.Transpose(d2.keys)

      Je ne sais pas quoi faire...

      Merci par avance pour votre aide.

      Donya
  4. Bonjour
    Voici le fichier extract-Fichier-Notice-80.xlsm n'oubliez pas de corriger le nom à la réception
    https://www.cjoint.com/c/EGlgecOC02w
    2 erreurs contatées:
    1)- dans votre demande initiale, vous mettiez en premier, l'ID, j'avais donc intégré cette donnée en colonne 1 (le programme créait un N° incréménté à chaque fois, comme vous n'avez créer cette colonne, je l'ai donc supprimé du programme). donc,le fait que vous n'ayez pas créer cette colonne, ça décalait toute la recopie.
    2)-La méthode utilisée pour récupérer les données est extrêmement rapide, mais elle à horreur du vide, Si elle trouve une cellule vide, ça va générer une erreur à la restitution des données. c'est ce qui ce produit en recopiant les NAF-Code, en effet en ligne 12 le NAF-Code est vide, j'ai donc été amené à modifier le programme pour corriger cela. A la restitution, les valeurs absentes sont remplacées par un point.
    Cdlt
    1. Merci Frenchie83, c'est juste top !!
    2. Bonjour Frenchie83, je dois rajouter dans mon fichier extract-Fichier-Notice-80.xlsm, les éléments suivants :
      _S_APEN700_LIBELLE (qui correspond dans le fichier Get Plus Extract à NAF Label)
      _S_TEFEN (qui correspond au Staffing)
      Sais-tu comment faire ?
      Tu donnes des cours de macro ? :)
      Merci pour ton aide.