Excel Macro récupération texte

Fermé
Malou - 15 avril 2010 à 11:50
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 - 16 avril 2010 à 18:11
Bonjour à tous

Je souhaiterai créer une macro sous excel

qui me permettrai de récupérer et d'accoler dans une colonne d'une feuil, une partie de données texte du plusieurs colonnes d'une feuil distante

exemple

mettre dans la Feuil1 dans la colonne E à partir de la ligne 5
les 3 premières lettres des colonnes A,B et C de la Feuil1 d'un autre fichier excel
A voir également:

3 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
15 avril 2010 à 12:50
Bonjour,
Tu n'es pas obligé d'utiliser une macro pour ça, en E5, tu inscris :
=GAUCHE([Classeur1.xls]Feuil1!$A$5;3)&GAUCHE([Classeur1.xls]Feuil1!$B$5;3)&GAUCHE([Classeur1.xls]Feuil1!$C$5;3)


Mais si tu préfères une macro, c'est possible, redis le moi.
0
Merci pour ta réponse
mais dans ce que tu écris , tu fais une formule pour écrire les 3 premiers caractères des Cellules A5,B5 et C5 dans la cellule E5

je vois que ma demande n'était pas assez bien formé

je souhaiterai obtenir les 3er caractères des colonnes A B C du classeur1 en sachant que ces 3 colonnes commence à la ligne 1 et la ligne de fin change suivant les données importé (importé d'un .txt en largeur fixe le tout définie dans une macro)

et transposer les caractères de chaque dans la colonne E du classeur2 mais la cellule E5 comporterait les caractères de A1+B1+C1 etc...
jusqu'à E10005 par exemple si les A B C comporte 10000 lignes

j'espère avoir bien précisé ma demande

Merci d'avance pour vos réponses
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
Modifié par Gord21 le 15/04/2010 à 18:00
Désolé, je ne suis pas sûr d'avoir compris.
Si tu as dans ton classeur source :
           A       B      C 
ligne 1   un      deux   trois 
ligne 2   quatre  cinq   six 
ligne 3   sept    huit   neuf 

en E5, tu veux récupérer : udtqcsshn
C'est bien ça ?
0
dans le classeur 1 par exemple
A B C
Ligne 1 marche arrêt défaut
Ligne 2 bouf miam manger

récupérer : en E5 : mararrdef
en E6 : boumiaman
etc...

et ceux jusqu'à ce qu'il détecte une ligne vide en dans le classeur 1

En gros , sous macro ça serait
une boucle "Do while...loop" qui fait l'action jusqu'à ce qu'il détecte une cellule vide
et l'action serait une formule excel "=concatener(gauche(...;3)&gauche(...;3)&gauche(...;3))

mais je ne connais pas les codes VB pour ça , et j'ai beau cherché sur les forums , je ne trouve que des réponses partiels , et je n'arrive pas à réunir les bon éléments pour faire ce que je veux

j'espère que ça répond à ta question
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
15 avril 2010 à 19:01
C'est ce que j'avais compris au début, il y avait juste le décalage de la ligne 5 au lieu de la ligne 1.
Voici la macro. Pense à modifier le nom du classeur source.
http://www.cijoint.fr/cjlink.php?file=cj201004/cij6Cm7Xi5.xls
@+
0
dct33 Messages postés 41 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2010 39
15 avril 2010 à 18:38
Bonsoir ,

'récupération de données de la colonne1 que je mets dans la colonne 3
'J'ai mis ma première donnée ligne 2 la suivante ligne 3 etc
' avec la fonction mid je récupère les trois premier' caractères

X = 2

While Cells(X, 1) <> ""

Cells(X, 3) = Mid(Cells(X, 1), 1, 3)

X = X + 1

Wend

Bonne programmation
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
15 avril 2010 à 20:39
Bonsoir dct33,
Juste pour info, lorsque tu veux extraire la partie droite ou gauche d'une chaîne de caractères, tu peux utiliser les fonctions Right ou Left.
Dans ton exemple, ça donnerait :
Cells(X, 3) = Left(Cells(X, 1), 3)
0
Merci Beaucoup Gord21 c'est exactement ce que je voulais !

dct33 je n'ai pas encore essayer ce que tu m'as indiquer mais je n'y manquerai pas

Merci à tous !
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
15 avril 2010 à 20:40
N'hésite pas demander si tu as des soucis pour adapter à ton cas.
0
je profite de ce que tu as dis juste au dessus pour te reposer une question

j'ai adapter le code a mon cas
mais qu'en je lance la macro
apparrement il l'exécute (le petit cercle de chargement sur vista tourne)
mais une fois le chargement fini je n'ai aucun résultat afficher
j'ai bien vérifier les chemin d'accés etc
mais rien n'y fait


et comment écrire le code de valeurs si j'ai besoin de tous les caractères d'une cellule


Merci d'avance
0
est-ce possible que ce soit dut à l'auto_open du classeur source
ou bien au fait que j'ai des cellules fusionner dans la première ligne de mon classeur destinataire?
0
Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
16 avril 2010 à 13:40
Bonjour,
Difficile de répondre comme ça. Est-ce que tu pourrais m'envoyer le fichier résultat et le fichier source (avec le code des macros) que je puisse regarder ce qui se passe.
@+
0
Ce sont des données confidentiels je ne peux te les envoyer, désolé

j'ai dé-fusionner les cellules , j'ai essayé avec ta macro et non la mienne , mais rien.

je continu ma recherche de bugs pour essayer de détailler le problème

voici le lien de la macro une fois modifié (à part la destination et le nom des fichiers , question de confidentialités)
http://www.cijoint.fr/cjlink.php?file=cj201004/cijkeZwMeI.xls
0