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 :

VBA : Interaction entre .xlsb et .xlsx


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Chargé d'etudes
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'etudes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut VBA : Interaction entre .xlsb et .xlsx
    Bonjour à tous,

    Je me présente : Enzo Pereira, 24 ans, chargé d'etudes au sein d'une société de transports internationaux.

    Dans le cadre de mon travail, je cherche à réaliser une macro me permettant de copier-coller les résultats apportés par une première macro, on va l'appeller macro1 (déjà fonctionnelle, et dans un autre classeur), dans un nouveau classeur.

    J'ai donc deux fichiers :
    - Le premier déjà existant, déjà fonctionnel, qui me sort les données dont j'ai besoin, toujours dans le même onglet (qui est nettoyé avant chaque lancement). (en.xlsb)
    - Le deuxième fichier, à réaliser tous les mois, avec 26 onglets, qui doivent être remplis par les résultats de 26 lancements de la macro1 (premier fichier). (en.xlsx)

    Chaque lancement de la macro1 se fait avec un paramètre différent, les résultats qui en ressortent sont donc différents à chaque fois. A chaque lancement, je copie le résultat dans un nouvel onglet de mon second fichier.

    J'ai pour le moment réussi la macro me permettant de créer le dossier ainsi que le fichier et ses 26 onglets.

    Il me reste donc le copier coller à réaliser, mais je n'arrive pas à faire chevaucher la macro sur ces deux fichiers, je pense que le problème vient de leur format, puisque le fichier déjà créé (contenant la macro1) est en .xlsb, et que mon nouveau classeur est en xlsx.

    Auriez-vous une solution afin de copier-coller des données par VBA entre ces deux fichiers s'il vous plaît ?

    Je précise que le premier fichier doit rester en xlsb pour son bon fonctionnement.

    Merci à vous pour votre aide future,

    Enzo Pereira

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    un fichier xlsx ne peut pas contenir de macro VBA, contrairement aux fichiers xlsm et xlsb.

    Il n'y a pour ainsi dire aucune différence notoire dans ton cas de figure à traiter indifféremment un format ou l'autre. Le point étant de bien mettre ton code dans un fichier qui te permet d'en mettre (xlsm ou xlsb).

    https://jpcheck.developpez.com/tutor...binaires-xlsb/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Candidat au Club
    Femme Profil pro
    Chargé d'etudes
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'etudes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut
    Bonjour Jean-Philippe,
    Merci pour ta réponse,

    Je sais que le fichier xlsx ne peut contenir de VBA, j'essaie de coder dans le fichier xlsb, cependant le code en fichier xlsb peut venir manipuler des données dans le xlsx n'est-ce pas ?

    D'avance merci pour ton retour

    Citation Envoyé par Jean-Philippe André Voir le message
    Bonjour,

    un fichier xlsx ne peut pas contenir de macro VBA, contrairement aux fichiers xlsm et xlsb.

    Il n'y a pour ainsi dire aucune différence notoire dans ton cas de figure à traiter indifféremment un format ou l'autre. Le point étant de bien mettre ton code dans un fichier qui te permet d'en mettre (xlsm ou xlsb).

    https://jpcheck.developpez.com/tutor...binaires-xlsb/

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    oui c'est tout à fait possible.


    Comme je n'ai vu pour l'instant aucune ligne de code, je ne sais pas à quelle étape de ton processus tu es actuellement à l'arrêt.

    Est-ce l'ouverture d'un classeur qui pose soucis ?
    Le parcours des feuilles ?
    Le copier-coller ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Candidat au Club
    Femme Profil pro
    Chargé d'etudes
    Inscrit en
    Avril 2022
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'etudes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2022
    Messages : 3
    Par défaut
    Salut,

    Merci pour ta réponse,
    Alors voici le code pour le moment (très simple, c'est le début) :
    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
    Sub extraction()
    'Parametrage pour l'Autriche
        Range("B3").Select
        Selection.ClearContents
        Range("B4").Select
        ActiveCell.FormulaR1C1 = "A"
        Range("B5").Select
        ActiveCell.FormulaR1C1 = "T"
        Call RDV
        Windows("Tableau délai v8 wk.xlsb").Activate
        Sheets("Délais").Select
        Range("A3").Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Workbooks("0.ExtractionProductPilot.xlsx").Activate
        Windows("Classeur2").Activate
        Range("A1").Select
        ActiveSheet.Paste
    End Sub
    La ligne en gras est surlignée en jaune dans le débogueur et le message "L'indice n'appartient pas à la sélection" apparait.
    Le fichier en question est celui dans lequel je dois coller mes lignes, et à cette étape il vient d'être créé par un autre module.

    Merci à toi

Discussions similaires

  1. Interaction entre VBA et IE
    Par boudoula dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/12/2020, 10h40
  2. [C#] Interaction entre C# et VBA
    Par Mark531 dans le forum Débuter
    Réponses: 2
    Dernier message: 03/09/2012, 17h46

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