[XL-2000] Recupération de ligne d'un fichier Texte pour coller dans excel
kev159
Messages postés4Date d'inscriptionvendredi 24 septembre 2010StatutMembreDernière intervention27 septembre 2010
-
24 sept. 2010 à 07:11
kev159
Messages postés4Date d'inscriptionvendredi 24 septembre 2010StatutMembreDernière intervention27 septembre 2010
-
27 sept. 2010 à 07:12
Bonjour,
J'étale mon problème.
Depuis excel, j'aimerais en lançant une macro, avoir le choix d'ouvrir le fichier ".rcp" (ASCII) pour recupérer les lignes 2-16-23, pour ensuite les coller dans la feuil1 de mon classeur.
Le problème est que je ne sais pas du tout comment démarrer mon code.
Pouvez vous m'aider s'il vous plait.
Je vous joint le fichier ".rcp" pour que vous puissiez voir ce que je veux extraire.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 sept. 2010 à 09:01
Salut
Pour démarrer :
- Si tu es dans Excel, tu ne fais pas du VB.Net mais du VBA
- Fais des recherches dans l'aide de Excel avec les mots clés "fichier", "ouvrir". Pense aussi que le langage de programmation utilise des mots anglais, donc chercher aussi "file", "open", ...
- Fais des recherches parmi les questions forum et les codes du site qui parlent de "ouvrir fichier texte", "lire fichier texte"
Les fichiers FRM, BAS ou CLS des applications VB6 sont lisibles dans NotePad et sont à 80% compatibles avec VBA
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
marion8316
Messages postés75Date d'inscriptionmercredi 17 août 2011StatutMembreDernière intervention27 septembre 20111 25 sept. 2010 à 11:28
Bonjour,
N'ayant pas de réponse à mon message précédent, ci-dessous exemple de code en VBA pour la lecture d'un fichier et écriture de certaine ligne dans la feuille du classeur.
' ********************************
'Lecture du fichier
'- Si la fin de fichier n'est pas atteinte, on reste dans
' la boucle de lecture
' ********************************
'Début de la boucle de lecture
Do While Not EOF(1)
'On récupère les données lues dans la variable Ilecture
Line Input #1, Ilecture
'On ajoute 1 à l'Iindice
Iindice = Iindice + 1
'Séquence pour tester la valeur de l'Indice
'
Select Case Iindice
'Si variable = 2 ou 16 ou 23 alors écriture de la ligne
'dans la feuille "Feuil1"
'
Case 1, 2, 4:
rwindex = rwindex + 1
colindex = 1
'Ecriture dans la feuille "Feuil1"
'rwindex = N° de ligne dans la feuille
'colindex = N° de la colonne dans la feuille
'
Application.Worksheets("Feuil1").Cells(rwindex, colindex).Value = Ilecture
kev159
Messages postés4Date d'inscriptionvendredi 24 septembre 2010StatutMembreDernière intervention27 septembre 2010 27 sept. 2010 à 06:00
Marion,
Je viens d'essayer la macro que tu ma laissé plus haut, ca fonctionne à merveille.
Par contre pour l'ouverture du fichier à lire, pourrais tu me dire comment faire pour avoir le choix du fichier à ouvrir avec par exemple un "getopenfilename" car ce n'est pas toujours le même fichier que je dois ouvrir.
kev159
Messages postés4Date d'inscriptionvendredi 24 septembre 2010StatutMembreDernière intervention27 septembre 2010 27 sept. 2010 à 07:12
C'est tout bon, j'ai remplacé par ceci pour l'ouverture du fichier texte
Fichier = Application.GetOpenFilename("Text Files (*.rcp), *.rcp")
If Fichier <> False Then
Open Fichier For Input As #1
MonTexte = ""
ça fonctionne nikel.
Est ce que tu pourrais m'aider pour un autre problème aussi s'il te plait.
je t'explique,
Dans la feuille "BTU 150" de mon classeur où le fichier texte est collé (dans la "Feuil1"), la cellule F22 à pour valeur "000033-39" (comme le nom du fichier texte).
Je cherche une macro qui pourrais faire une recherche
par exemple:
si A1 de la "feuil1" est égal à une valeur de la colonne "F" de la feuille "BTU 150" alors on copie les cellules A3 à J3 de la feuil1 pour les coller dans les cellules G à P correspondante a la ligne trouvé.
Et la cellule "A2" de la feuil1 on la copie et on la colle dans la colonne "R" correspondante a la ligne trouvé.
Je ne sais pas si j'ai été assez clair dans mon explication.
Merci de ton aide, j'espère ne pas trop te déranger.