Création d'une macro Excel

donyal Messages postés 6 Statut Membre -  
Frenchie83 Messages postés 2254 Statut Membre -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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

    0
    1. donyal Messages postés 6 Statut Membre
       
      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
      0
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
      0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    0
    1. donyal Messages postés 6 Statut Membre
       
      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
      0
    2. Frenchie83 Messages postés 2254 Statut Membre 339 > donyal Messages postés 6 Statut Membre
       
      Après avoir cliquer sur débogage, sur quelle ligne s'arrête la macro?
      0
    3. donyal Messages postés 6 Statut Membre
       
      Sur cette ligne Frenchie83
      Set F2 = Application.Workbooks("Getplus_Extract.xlsx")
      0
    4. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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
      0
    5. Excel-worker Messages postés 603 Statut Membre 58
       
      Bonjour Frenchie83,

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

      Cordialement,
      Excel-worker
      0
  3. Excel-worker Messages postés 603 Statut Membre 58
     
    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
    0
    1. donyal Messages postés 6 Statut Membre
       
      ça marche bien les amis, merci Excel-worker et Frenchie83.
      0
      1. Excel-worker Messages postés 603 Statut Membre 58 > donyal Messages postés 6 Statut Membre
         
        De rien, bonne journée.
        0
    2. donyal Messages postés 6 Statut Membre
       
      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
      0
  4. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    0
    1. Donya
       
      Merci Frenchie83, c'est juste top !!
      0
    2. Donya
       
      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.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question