![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 11
|
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. Dernière modification par AlainTech ; 22/09/2008 à 17h15 Motif: Fusion de 2 messages |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: août 2007
Localisation: Impasse
Âge: 43
Messages: 1 024
|
Bonjour,
sans connaitre ce logiciel, cela me semble plutot difficile.
__________________
Cordialement G@dz Question technique par MP = Vous avez des neurones. Sollicitez-les. réponse inadaptée. Si la solution est absente, le problème n'est plus.
|
|
|
|
|
|
#3 (permalink) |
![]() Date d'inscription: août 2005
Messages: 3 113
|
bonjour
j'espère que ce lien pourra t'aider http://forum.hardware.fr/hfr/Program...et_23039_1.htm bonne soirée michel |
|
|
|
|
|
#5 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 11
|
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 |
|
|
|
|
|
#6 (permalink) |
|
Membre habitué
![]() Date d'inscription: février 2006
Messages: 161
|
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 :
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 |
|
|
|
|
|
#7 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 11
|
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 |
|
|
|
|
|
#8 (permalink) |
|
Membre habitué
![]() Date d'inscription: février 2006
Messages: 161
|
Oui, il faut en faire une fonction.
Code :
'#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... |
|
|
|
|
|
#9 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 11
|
je suis désolé mais je comprends pas trop le fonctionnement de ta macro!
je désire sélectionner une cellule contenant un mot, le copier et le coller dans une cellule ou j'aurais défini le nombre de caractères au préalable. afin que le mot collé prenne une certaine place dans la cellule et que le reste soit des espaces vides. |
|
|
|
|
|
#10 (permalink) |
|
Membre habitué
![]() Date d'inscription: février 2006
Messages: 161
|
Ouais, alors tu peux l'utiliser comme une fonction personnalisée dans une formule.
Il faut donc coller le code suivant dans un module : Code :
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 =Complete_Champ(A1;15) ça va t'obliger à personnaliser le 2ème paramètre pour tes 500 formules évidemment, mais je ne vois pas comment faire autrement. Oups je m'aperçois que ça fait 16 caractères if faut donc modifier la fonction ainsi : Code :
for i = nbCar to varNb - 1 Dernière modification par AlainTech ; 18/09/2008 à 15h18 Motif: Fusion de 2 messages |
|
|
|
|
|
#11 (permalink) |
|
Invité régulier
![]() Date d'inscription: février 2008
Messages: 11
|
merci beaucoup, sa semble fonctionner!
mon problème intervient après lorsque je colle les données dans le fichier texte. les espaces ne sont pas conservés. exemple: j'écris abcd en B2 puis, =Complete_Champ(B2;4) en C2 et je refais la mm chose pour en D2 =Complete_Champ(C2;4); sauf que si je prends les valeurs de C2 et D2 et que je les colle dans mon fichier texte ils devraient logiquement être accolés sauf qu'il subsiste un écart! vais qd mm devoir me taper la fonction len je pense... |
|
|
|
|
|
#12 (permalink) |
![]() Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 667
|
Bonjour tlm,
Je me suis permis de légèrement adapter la fonction de neupont et cela fonctionne nickel Code :
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" If nbCar < varNb Then For i = 1 To varNb - nbCar 'on va rajouter des espaces varMot = varMot & " " Next i End If Complete_Champ = varMot End Function
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
|
|
|
#13 (permalink) | |
|
Membre habitué
![]() Date d'inscription: février 2006
Messages: 161
|
Citation:
Si c'est bien ça le problème, et sans rentrer dans les macros qui te crééraient le fichier texte, pourquoi ne pas utiliser une colonne vide avec la fonction CONCATENER dans laquelle tu concatènerais C et D ? De la sorte tu collerais cette colonne sans subir la tabulation. |
|
|
|
|
|
|
#14 (permalink) |
![]() Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 667
|
Re,
Une info venant de kiki29 pouvant être utile, il existe une fonction Space qui ajoute les espaces sans devoir passer par une boucle. Cette partie Code :
If nbCar < varNb Then For i = 1 To varNb - nbCar 'on va rajouter des espaces varMot = varMot & " " Next i End If Code :
If nbCar < varNb Then varMot = varMot & Space(varNb - nbCar) .
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
|
![]() |
![]() |
||
Transfert de données de excel vers le logiciel sage Integrale 5.0
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|