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 :

Transfert de données de excel vers le logiciel sage Integrale 5.0


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    Bonjour,

    Alors voici mon problème:

    La mission qui m'a été confiée par l'entreprise est de trouver un moyen de récupérer des données à partir de Excel et de les "copier/coller" aux endroits spécifiques dans le progiciel Integrale 5.0.

    Je suis tout simplement perdu et j'espère de tout coeur que vous puissiez m'aider.


    Pour info la seule chose que l'entreprise m'a fourni est une liste m'indiquant pour chaque champ à remplir sur le progiciel la longueur et la position du champ.

    merci d'avance pour votre aide, j'essayerais toutes les pistes car il faut absolument que je réussisse.

    Petite précision, c'est à partir de vba que je vais devoir envoyer les données!

    Au pire si personne ne peut m'aider serait t'il possible de m'expliquer comment je pourrais ouvrir le logiciel integrale à partir de excel par simple click ou autre.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    sans connaitre ce logiciel, cela me semble plutot difficile.

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    voici les dernièes nouvelles!

    j'ai exporté des données au format texte du logiciel integrale, ceci me donne des lignes d'environ 300 caractères. Chaque ligne correspond à un des masques du logiciel.

    J'ai réalisé une macro qui va sélectioner les données requises dans mon fichier excel puis sur une page du classeur je colle tout dans une ligne dans l'ordre requis. Puis a partir de la je sélectionne les divers lignes que j'ai préalablement collés, je les copie et les colle dans un fichier texte pour pouvoir etre exploitables.

    JUsque la pas de problème...

    sauf que je dois organiser mes données par caractères c'est à dire par exemple que le premier mot commence au premier caractère suivi d'un espace qui fait tant de caractères puis le second mot commence 15 caractères plus loin et ainsi de suite.

    J'aimerais savoir s'il est possible dans excel de pouvoir écrire donc dans une ligne entière tout en respectant l'ordre par rapport aux caractères.

    ex:

    EA1225701 01/09/0800/00/00TBO-000012834597 040179714 REPA 0.00.... et ainsi de suite sur 300 caractères.

    je sais pas si c clair tout sa, jsuis content d'aboutir a sa malgrès mes débuts pénibles. Jtouche au but j'espère vraiment que vous puissiez m'aider.

    Merci d'avance

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Salut,
    je trouve ton message pas très clair, j'ai du mal à piger
    Si tu veux formater des zones de texte selon une certaine longueur, la fonction Len() te sera utile, elle ne fonctionne qu'avec une variable de type String et donne le nombre de caractères de la variable.

    Exemple : tu sais que tel champ nécessite 15 caractères mais ta variable en a moins, il faut donc combler le restant avec des espaces.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim premier_mot as string
    dim nbCar as integer
    nbCar = len(premier_mot) 'nb de caractères de "premier_mot"
    for i = nbCar to 15 'on va rajouter des espaces jusqu'à avoir 15 caractères.
       premier_mot = premier_mot & " "
    next i
    Voilà, si j'ai mal compris c'est à côté de la plaque

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 12
    Par défaut
    terrible merci!
    j'avais pensé à une fonction dans ce style mais je ne la connaissait pas!

    bon le seul soucis c'est que j'ai environ dans les 500 mots à récupérer donc sa va en faire des lignes.

    Serait il possible de dire par exemple cellule [A1] = max 13 caractères et que donc si je colle un mot il y aura "13-la longeur du mot" vides après celui ci.

    jvais une fois essayer avec cette fonction, jreviens poster si j'ai un autre soucis!

    merci beaucoup en tout cas

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Oui, il faut en faire une fonction.

    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
     
     
    '#1 d'abord créer la fonction (à mettre dans un module) :
    Function Complete_Champ(varMot as string, varNb as integer)
    '1er paramètre : le mot
    '2eme paramètre : le nombre de caractères voulus dans le champ
    dim nbCar as integer
    nbCar = len(varMot) 'nb de caractères de "varMot"
    for i = nbCar to varNb 'on va rajouter des espaces
       varMot = varMot & " "
    next i
    Complete_Champ = varMot
    End Function
     
    '#2 Exemple d'utilisation de la fonction, dans une autre sub :
    Range("A1") = Complete_Champ(CStr(Range("A1")), 15)
    Range("A2") = Complete_Champ(CStr(Range("A2")), 13)
    etc...
    Eventuellement Complete_Champ() peut même s'utiliser en formule.

Discussions similaires

  1. Transfert de données d'excel vers un mail
    Par porsoni dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/05/2014, 13h25
  2. [XL-2007] Copier-coller des données d'excel vers un logiciel
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2012, 13h18
  3. Transfert de données d'excel vers access
    Par mataw dans le forum VBA Access
    Réponses: 1
    Dernier message: 04/04/2012, 09h04
  4. Transfert de données de Excel vers Word
    Par skanderhassayoune dans le forum VBA Word
    Réponses: 1
    Dernier message: 23/02/2011, 22h06
  5. transfert de donnés de excel vers Mysql
    Par mkachekh dans le forum Outils
    Réponses: 4
    Dernier message: 20/10/2006, 12h08

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