Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2724 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier des donnees entre 2 balises vers Excel

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Copier des donnees entre 2 balises vers Excel

n°1786984
malaka
Posté le 15-09-2008 à 14:50:27  profilanswer
 

Bonjour,
 
Comme tout bon débutant, j'ai un petit soucis (sinon je serais pas la!).
 
Je souhaiterai creer une macro sous Excel qui m permette d'aller lire un fichier et de copier les données qui se trouvent entre deux chaines de caracteres donnees.
 
Simple me direz-vous (ou peut-etre pas!).
 
En fait, pour mon boulot, un logiciel genere des fichiers ".output" (histoire de compliquer le probleme, c'est pas des '.txt" ), et je souhaite ne recuperer qu'une partie de ce fichier. La seule chose bien, c'est que ce je souhaite recuperer se trouve toujours  entre deux chaines de caracteres que je connais.
 
Un petit exemple etant toujours plus clair, mon fichier est organise comme suit:
blabla
blabla
Chaine1
donnees
donnees
Chaine2
blabla
blabla
 
Alors, pour commencer simplement,  j'ai deja essaye d'ouvrir un fichier avec une fenetre type ouvrir et de traiter un fichier. Jusque-la j'y arrive (difficilement certes, mais bon!)!!!  :D  
 
Voici le code employe:
 
Sub LireFichierTexte()
Dim Prenom, Nom, Age
' Ouvre le fichier en lecture
CeFichier = Application.GetOpenFilename("Text Files (*.txt), *.txt" )
If VarType(CeFichier) = vbBoolean Then
Exit Sub
Else
 Workbooks.OpenText Filename:=CeFichier, Origin:=xlWindows, _
 StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
 ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=True, _
 Space:=False, Other:=False, FieldInfo:=Array(1, 1)
End If
End Sub
 
J'ai envisage la fonction Split, mais ca devient lourd car il faut que je stocke tout le contenu de mon fichier dans une chaine... (et puis surtout, je sais pas comment extraire juste la ch&ine qui m'interesse  :whistle: )
 
Bon j'espere avoir ete clair (j'en doute mais bon, on sait jamais!)
 
Merci d'avance pour toute info qui me permettrait d'avancer!

mood
Publicité
Posté le 15-09-2008 à 14:50:27  profilanswer
 

n°1787415
Idoine
Posté le 16-09-2008 à 02:11:35  profilanswer
 

Essaie peut-être avec la fonction InStr, pour rechercher la position de ta Chaine1 d'abord, puis re avec Chaine2, et enfin la différence entre les 2 ?

n°1787493
malaka
Posté le 16-09-2008 à 10:57:46  profilanswer
 

Merci pour cette info. Mais je n'ai pas trouve de moyen de ne selectionner que le morceau de chaine situe entre chaine 1 et chaine 2.
 
Mais du coup, comment faut-il ouvrir le fichier avec GetOpenfileName pour qu'il le stocke en tant que chaine?

n°1787504
Moonschild
Posté le 16-09-2008 à 11:10:34  profilanswer
 

Idoine a écrit :

Essaie peut-être avec la fonction InStr, pour rechercher la position de ta Chaine1 d'abord, puis re avec Chaine2, et enfin la différence entre les 2 ?


En gros, fais un InStr sur chaine1, stock le resultat dans la variable, tu fais de meme pour le deuxieme, puis utilise mid(text, var_chaine1, var_chaine2-var_chaine1)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1787592
malaka
Posté le 16-09-2008 à 13:32:58  profilanswer
 

Ok merci!  
 
J'ai teste, du coup, le script suivant :
 
Sub LireFichierTexte()
Dim Prenom, Nom, Age
' Ouvre le fichier en lecture
CeFichier = Application.GetOpenFilename("Output Files (*.output), *.output" )
If VarType(CeFichier) = vbBoolean Then
Exit Sub
Else
  Position_chaine1 = InStr(CeFichier, MACHIN2)
  If Position_chaine1 = 0 Then
MsgBox ("Pas trouvé !" )
Else
 MsgBox ("Trouvé à la position " & Position_chaine1)
End If
End If
End Sub
 
et ce en utilisant le fichier suivant :  
 
tata,MACHIN1,24
tete,MACHIN2,25
titi,MACHIN3,26
toto,MACHIN4,27
 
mais ce gros malin me retourne "Trouvé à la position 1", ce qui ne me plait pas (vu que MACHIN2 est pas en position 1...).
 
Du coup, j'ai teste en mettant InStr(CeFichier, MACHIN2, vbTextCompare) mais la j'ai droit a un message d'erreur : "Incompatibilite de type"!  :heink:  
Donc je comprends pas la! :sweat:


Message édité par malaka le 17-09-2008 à 15:55:19
n°1789090
malaka
Posté le 19-09-2008 à 10:46:03  profilanswer
 

Personne n'a d'idee???

n°1789097
Moonschild
Posté le 19-09-2008 à 10:50:18  profilanswer
 

Question idiote, t'as bien mis des doubles quotes autour de MACHIN2 dans l'Instr ..?


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1789157
malaka
Posté le 19-09-2008 à 11:33:59  profilanswer
 

Et si je dis non, il se passe quoi?  :whistle:  
 
Je viens de faire la modif. La reponse est "pas trouve" quand je precise pas le type de comparaison et toujours le meme probleme de type quand je lui precise le vbTextCompare.
 
(Pour info, le script et le doc de test sont des copier-coller de ceux employes!)
 
Il existerait pas une commande qui me permettrait de connaitre le type de la variable CeFichier (savoir si c'est une chaine de caracteres par exemple cart si c'en est pas une, ca expliquerait bien des choses...)
 
En tout cas merci, j'avance petit a petit (et en plus j'apprends, que demander de plus!  :jap:  Ah si, je sais : un script qui fonctionne!  :D )

n°1789203
Moonschild
Posté le 19-09-2008 à 11:54:56  profilanswer
 

J'ai reussi à faire tourner ceci :

Code :
  1. Function liretxt()
  2. Dim TextLine
  3. Dim res As String
  4. Dim Apres_machin2 As Integer
  5. Open "c:\emplacement\de\ton\texte.txt" For Input As #1    ' Ouvre le fichier.
  6. Do While Not EOF(1)    ' Effectue la boucle jusqu'à la fin du fichier.
  7.     Line Input #1, TextLine        ' Lit la ligne dans la variable.
  8.     res = res & Chr(13) & TextLine
  9. Loop
  10. Close #1    ' Ferme le fichier.
  11. res = Mid(res, 2, Len(res) - 1) 'enleve le premier saut de ligne
  12. Apres_machin2 = InStr(res, "MACHIN2" ) 'emplacement de machin2, numero de caractere, pas de ligne
  13. End Function


Si cela peut t'aider a trouver une solution a ton probleme...   :)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1789218
malaka
Posté le 19-09-2008 à 12:03:40  profilanswer
 

Merci, je vais tester ca (et essayer de comprendre!) des que j'aurai un peu de temps!!

mood
Publicité
Posté le 19-09-2008 à 12:03:40  profilanswer
 

n°1792275
malaka
Posté le 26-09-2008 à 10:26:41  profilanswer
 

Effectivement, ca marche mieux!
 
Mais j'ai une petite question : a quoi sert le Chr(13) (ligne 8)? Je comprends pas trop.
 
Puisque ca marche avec ton code, je me dis que le probleme vient de mon ouverture de fichier (bah oui, ca parait logique!).
 
Le truc est que je souhaiterais eviter de devoir me cogner le changement d'emplacement du fichier a chaque fois que je veux exploiter un fichier (vu qu'ils sont rarement dans le meme dossier et qu'ils ont jamais le meme nom...).
 
Du coup la commande GetOpen... me paraissait correspondre a mes attentes. Mais il semble que je ne puisse pas exploiter le resultat (en tout cas pas comme je l'ai fait!).
 
Sinon, est-il possible de stocker dans une variable l'emplacement du fichier trouve avec une commande du type Getopen (ou autre fonction me permettant de rechercher un fichier avec une commande du type "explorer" que je ne connais pas! Faut dire que je connais pas grand chose!  :sweat: ) et j'appelle ensuite ma variable dans ta commande open normale...
 
(Je sais pas si j'ai ete tres clair la  :lol: )
 
Je continue a chercher mais suis preneur de toute idee...
 
Merci d'avance!

n°1792285
Moonschild
Posté le 26-09-2008 à 10:36:29  profilanswer
 

malaka a écrit :

Mais j'ai une petite question : a quoi sert le Chr(13) (ligne 8)? Je comprends pas trop.


En fait, "Chr(13)" correspond au caractere de saut de ligne, chr étant une fonction qui permet de reproduire des caracteres spéciaux (saut de ligne, tabulation...)
 

malaka a écrit :

Le truc est que je souhaiterais eviter de devoir me cogner le changement d'emplacement du fichier a chaque fois que je veux exploiter un fichier (vu qu'ils sont rarement dans le meme dossier et qu'ils ont jamais le meme nom...).


créé par exemple une textbox que tu rempliras avec l'adresse du fichier, et tu remplace le "Open "c:\emplacement\de\ton\texte.txt"" Par une variable Emplacement_Fichier, a laquelle tu attribueras juste avant la valeur de la textbox : Emplacement_fichier = sheets(feuille).textbox.caption
Je ne l'ai pas testé sur cette fonction, mais ca marche dans toutes celles que j'utilise...


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1792406
Idoine
Posté le 26-09-2008 à 13:18:06  profilanswer
 

Malaka, si tu veux avoir une boîte de dialogue intégrée de choix de fichier (genre Ouvrir), tu peux utiliser l'objet FileDialog. Tu as 4 types, Choix de fichier, Choix de dossier, Ouvrir, et Enregistrer sous.  
Tu peux changer les propriétés des boîtes, les titres, dossiers par défaut, nom de bouton.
Ex pour choisir un fichier dans le dossier C:\Essai :
 

Code :
  1. Dim fdChoix as FileDialog   ' et non pas Set fdChoix as FileDialog, honte à moi
  2.     Dim strNomFichier As String
  3.    
  4.     Set fdChoix = Application.FileDialog(msoFileDialogFilePicker) 'choix de fichier
  5.     fdChoix.ButtonName = "Choisir" 'nom du bouton
  6.     fdChoix.Title = "Choisir un fichier" ' titre de la boite
  7.     fdChoix.Filters.Add "Fichiers texte (txt, csv)", "*.txt; *.csv" 'filtre des fichiers
  8.     fdChoix.InitialFileName = "c:\Essai\" 'dossier initial
  9.     fdChoix.AllowMultiSelect = False 'pas de multi sélection
  10.     If fdChoix.Show = False Then
  11.         MsgBox "Choix annulé"
  12.         Exit Sub
  13.     Else
  14.         strNomFichier = fdChoix.SelectedItems(1) 'on stocke le nom du fichier sélectionné
  15.         MsgBox strNomFichier 'traitement
  16.     End If


Message édité par Idoine le 29-09-2008 à 20:09:48
n°1792416
Moonschild
Posté le 26-09-2008 à 13:58:13  profilanswer
 

@ Idoine : Merci beaucoup pour ton code, il m'a permit d'ameliorer une de mes macros pour mon travail... Ma note de stage te remercie :jap:


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1792417
Idoine
Posté le 26-09-2008 à 14:01:12  profilanswer
 

Moonschild a écrit :

@ Idoine : Merci beaucoup pour ton code, il m'a permit d'ameliorer une de mes macros pour mon travail... Ma note de stage te remercie :jap:


 :D  :jap:

n°1792464
malaka
Posté le 26-09-2008 à 14:50:50  profilanswer
 

Nickel, je vais tester ca! Merci beaucoup!
 
(entreverrai-je le bout du tunnel avec ce code de ******???)

n°1793395
malaka
Posté le 29-09-2008 à 15:36:57  profilanswer
 

Euuuuh je vais sans doute passer pour un gros blaireau, mais je n'arrive pas a utiliser ton code Idoine!
 
Dois-je inserer ce bout de code dans le mien ou dois-je creer un bouton dont le traitement correspond a ton code? En gros comment je fais pour l'utiliser??? (bah oui je suis un assiste et alors?)
 
Sincerement, je suis paume la!
 
Merci d'avance!

n°1793399
Moonschild
Posté le 29-09-2008 à 15:44:00  profilanswer
 

Utilise un bouton...
Au pire, si tu veux te la jouer, tu l'entre dans une fonction, et apres tu mets dans ton thisworkbook un  
Application.OnKey "{F2}", "Nom_De_ta_fonction"
Comme ca au prochain demarrage, tu ouvriras la boite d'un simple coup sur la touche F2... Ca fait carrement le gourou de la macro xD (J'ai collé sur le cul mon maitre de stage avec ca moi (enfin surtout grace a idoine)) :)
 
PS: as-tu rempacé le "c:\Essai\" par ton dossiers a afficher a l'ouverture de la boite de dialogue?


Message édité par Moonschild le 29-09-2008 à 15:44:20

---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793418
malaka
Posté le 29-09-2008 à 16:05:12  profilanswer
 

Merci pour cette info (au fait, le bouton, c'est un bete CommandButton? :sweat: )! Mon probleme est que des que je clique sur le bouton (Cf code ci-apres), j'ai un probleme de syntaxe! Il semble ne pas connaitre la fonction "Set fdChoix as FileDialog"
 

Code :
  1. Private Sub CommandButton2_Click()
  2. Set fdChoix as FileDialog
  3.     Dim strNomFichier As String
  4.  
  5.     Set fdChoix = Application.FileDialog(msoFileDialogFilePicker) 'choix de fichier
  6.     fdChoix.ButtonName = "Choisir" 'nom du bouton
  7.     fdChoix.Title = "Choisir un fichier" ' titre de la boite
  8.     fdChoix.Filters.Add "Fichiers texte (txt, csv)", "*.txt; *.csv" 'filtre des fichiers
  9.     fdChoix.InitialFileName = "c:\" 'dossier initial
  10.     fdChoix.AllowMultiSelect = False 'pas de multi sélection
  11.     If fdChoix.Show = False Then
  12.         MsgBox "Choix annulé"
  13.         Exit Sub
  14.     Else
  15.         strNomFichier = fdChoix.SelectedItems(1) 'on stocke le nom du fichier sélectionné
  16.         MsgBox strNomFichier 'traitement
  17.     End If
  18. End Sub


 
Du coup, meme si je remplace c:\..., ca change pas grand chose, vu qu'il va pas jusque la! :(


Message édité par malaka le 29-09-2008 à 16:20:54
n°1793454
Moonschild
Posté le 29-09-2008 à 16:31:52  profilanswer
 

Oui j'connais ca, en fait, c'est parce que ce code est fait pour aller dans le thisworkbook, du coup, vu que tu le mets ailleurs, il faut mettre application.application.... Tiens, voila mon code, pour ouvrir le dossier contenant le fichier xl qui contient la macro (attention si tu le copies, j'ai activé la multi ouverture, et je l'ai adapté pour ouvrir les .xls)

Code :
  1. Function ouvrir_dialog()
  2. Dim fdChoix As FileDialog
  3. Dim strNomFichier As String
  4. Dim Chemin As String
  5. Chemin = ActiveWorkbook.Path
  6.  
  7. Set fdChoix = Application.Application.FileDialog(msoFileDialogFilePicker)
  8. fdChoix.ButtonName = "Open A Workbook"
  9. fdChoix.Title = "explorer"
  10. fdChoix.Filters.Add "excel files (xls)", "*.xls"
  11. fdChoix.InitialFileName = Chemin
  12. fdChoix.AllowMultiSelect = True
  13. If fdChoix.Show = False Then
  14.   Exit Function
  15. Else
  16.   For i = 1 To fdChoix.SelectedItems.Count
  17.     strNomFichier = fdChoix.SelectedItems(i)
  18.     Workbooks.Open strNomFichier
  19.   Next i
  20. End If
  21. End Function


Apres, t'as plus qu'a le refaire a ta sauce, j'espere que cela t'aidera...


Message édité par Moonschild le 29-09-2008 à 16:32:28

---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793467
malaka
Posté le 29-09-2008 à 16:41:24  profilanswer
 

Merci, ca m'a permis de trouver la feinte! Il suffit de remplacer
 Set fdChoix as FileDialog
 
par
 
 Dim fdChoix as FileDialog
 
et apres tout fonctionne (sans avoir application.Application.File...)
 
Bon, essayons d'avancer dans cette macro! (Bon c'est pas gagné, je reviendrai surement poser mes questions vu que les reponses sont efficaces et pertinentes!)
 
Grand merci a vous deux!

n°1793468
Moonschild
Posté le 29-09-2008 à 16:42:48  profilanswer
 

N'hesite pas à reposter si tu as besoin d'aide :)
Bon courage pour la suite :jap:


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793498
malaka
Posté le 29-09-2008 à 17:29:40  profilanswer
 

Merci pour cette invitation! Du coup, je pose encore une question (stupide bien entendu! :D )
 
Je voudrais afficher dans une TextBox la valeur de la variable strNomFichier. Seul probleme, c'est que si je mets TextBox1.value = strNomFichier (ou TextBox1.Text =...) ca marche pas! J'ai teste de mettre le resultat dans le private sub de ma zone de texte, ca marche pas (idem si TextBox1.Value ou Text = ... se trouve dans la commande de mon bouton de choix de fichier), mais rien n'y fait!
 
Mon objectif etant de creer une interface utilisateur, je voulais un bouton pour choisir le fichier et afficher le chemin choisi dans une zone de texte et un bouton pour traiter le resultat.
 
Le probleme, c'est que, si mes souvenirs sont bons, les variables ne sont valables que dans le Sub ou elles sont definies... Puis-je les mettre au tout debut du userform pour qu'elles soient definies en global et du coup me servir dans les differents boutons, zones de texte, ... avec a chaque fois la meme valeur?
 
Merci!
 
Ou peut-etre que tout simplement il faut pas que j'utilise de zone de texte (ne servirait-elle qu'a entrer du texte et pas a en afficher???  :??: ) mais un autre objet qui ne me vient pas a l'esprit...


Message édité par malaka le 29-09-2008 à 17:36:34
n°1793503
Moonschild
Posté le 29-09-2008 à 17:36:08  profilanswer
 

Remplace le workbook.open... Par un sheets(feuille_où_y'a_la_textbox).nom_de_ta_textbox.value = strNomFichier
Comme ca la variable possede toujours la bonne valeur
Si tu veux appeler une fonction a partir d'une autre et lui injecter une valeur tu ecris "call MaFonction(variable_que_t'importe)" pour l'appel de la fonction, et tu declare la fonction en "function MaFonction(byval variable_que_t'importe as Type_de_ta_variable) "
Désolé si j'suis hors sujet ou pour les possibles fautes, étant en conf-call internationale, s'pas simple de se concentrer sur les deux en meme temps :lol:


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793507
malaka
Posté le 29-09-2008 à 17:42:04  profilanswer
 

Bah je veux bien, mais je fais comment? J'ai pas de sheets ou de workbook.open (je fais ca directement dans excel pour l'instant...)

n°1793516
Moonschild
Posté le 29-09-2008 à 17:52:26  profilanswer
 

Tout le code que je t'ai donné est a copier dans les macro vba, donc a utiliser dans le macro editor (alt+F11)...
Le plus simple, fait une textbox, puis fait un bouton sur excel, et, en mode creation, double clic sur le bouton, et copie le tout... Ensuire, dans le code, tu as vers la fin une ligne commencant par "workbook.open"... remplace la par me.textbox1.value = strNomFichier


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793519
malaka
Posté le 29-09-2008 à 17:55:25  profilanswer
 

Ok, je verrai ca demain (youhou, enfin je rentre chez moi!)
 
Bonne nuit (oups, pardon, c'est que c'est tard 18h pour moi!)
 
Bonne soiree donc...

n°1793520
Moonschild
Posté le 29-09-2008 à 17:56:16  profilanswer
 

Tres bien, a demain alors :hello:


Message édité par Moonschild le 29-09-2008 à 17:56:47

---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793544
Idoine
Posté le 29-09-2008 à 20:12:32  profilanswer
 

:D Honte à moi pour l'erreur d'écriture, c'est ça quand on commence par écrire, puis qu'on se décide pour le copier-coller !
Erreur corrigée ! :lol:

n°1793702
malaka
Posté le 30-09-2008 à 09:40:27  profilanswer
 

Bonjour!  :bounce:  
 
Alors j'ai bien modifier le code et j'arrive enfin a afficher le nom du fichier ouvert dans ma textbox! (Ca c'est fait!)
 
Par contre, comment lorsque je veux utiliser mon deuxieme bouton, il connait pas ma variable de chemin vu qu'elle est definie dans un autre bouton (autre sub donc).
 
Comment je peux faire appelle a cette variable (pas fonction) du coup?
 
en plus, vu que mon userform1 est pas lie a une feuille...enfin, bref, on se comprends (enfin j'espere  :lol: )

n°1793708
Moonschild
Posté le 30-09-2008 à 09:44:22  profilanswer
 

Une solution warior à la "va-y-que-j'te-pousse", c'est d'entrer la valeur de ta variable dans une cellule non visible (genre cells(500,500)  :whistle: ) puis de la récuperer lorsque t'appui sur ton deuxieme bouton...


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793719
malaka
Posté le 30-09-2008 à 09:59:00  profilanswer
 

Bah oui, mais je prefere faire un truc propre (et surtout independant de toute feuille excel (j'aimerais essayer de compiler ca en .exe derriere, histoire de faire un truc inbidouillable et faire chier plein de monde comme ca!

n°1793720
Moonschild
Posté le 30-09-2008 à 10:01:00  profilanswer
 

Attend, j'capte un truc... au final, tu veux aussi recuperer le chemin pour ton fichier/dossier dans ta deuxieme fonction quoi...? Si c'est le cas, pourquoi tu recuperes juste pas la valeur de ta textbox? (J'pense pas que ce soit ca, mais c'est l'impression que ton post d'avant me donne)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793726
malaka
Posté le 30-09-2008 à 10:10:40  profilanswer
 

oh que j'ai honte de moi  :sweat:  
 
Effectivement, je dois recuperer le meme chemin (donc, vu qu'il est ecrit dans la textbox, j'ai juste a stocker la valeur de cette boite!)...
 
Personne aurait un trou a me pretter pour que j'aille m'y cacher svp? :)  
 
Bah du coup, ca marche nickel comme ca! Va falloir que je me reveille moi, ca m'evitera de me prendre la tete pour rien!  :sleep:

Message cité 1 fois
Message édité par malaka le 30-09-2008 à 10:13:36
n°1793738
Moonschild
Posté le 30-09-2008 à 10:24:30  profilanswer
 

malaka a écrit :

ca m'evitera de me prendre la tete pour rien!  :sleep:


On en est tous plus ou moins au meme point, c'est souvent les petits détails qui nous bloquent des heures  :D  


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793751
malaka
Posté le 30-09-2008 à 10:34:07  profilanswer
 

Nouvelle question : pourquoi les icones a gauche de ma fenetre de selection de fichier ne fonctionnent-elles pas? je ne peux passer que par le menu deroulant!
 
(Si vous avez besoin du code, je le mets..., mais je voulais pas surcharger le post)

n°1793754
Moonschild
Posté le 30-09-2008 à 10:35:35  profilanswer
 

Etonnant, sachant que le mien fonctionne...
Une version d'excel qui gere mal ces 4 icones peu etre?


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793875
malaka
Posté le 30-09-2008 à 14:05:34  profilanswer
 

en fait, il semble que des fois ca marche et d'autres pas! Bizarre!!!  :heink:  
 
En testant mon debut de programme sur un fichier habituel, il s'avere que c'est super long (forcement, les fichiers sont tres volumineux et comme il copie toutes les lignes...).
 
Quelqu'un sait comment accelerer tout ca?
 
Sinon, faudra le decouper a la main, mais bon, je preferais eviter (bah oui, je suis tres faineant!  :D )

n°1793912
Moonschild
Posté le 30-09-2008 à 15:08:58  profilanswer
 

A la limite, dans les conditions de ton while, rajoute un or, un truc du genre "Do While ((Not EOF(1)) and (instr(Line Input #1, "Machin_qui_delimite_la_fin_du_truc_a_copier" ) = 0)) "
Qui s'arretera a la premiere condition fausse ;)


---------------
Si Le Travail C'est La Santé, Donnez Le Mien A Quelqu'un De Malade
n°1793914
malaka
Posté le 30-09-2008 à 15:28:31  profilanswer
 

Oui mais ca m'arrange pas! Je m'explique : je prends un fichier que je veux exploiter. Bah la premiere ligne qui m'interesse est a la ligne 827409 et le fichier en compte 830222 au total! Donc m'arreter avant la fin n'est pas tres utile (malheureusement!)...
 
Desole, mais merci quand meme!
 
Je pense a un truc la! (miracle!!! :lol: ) : adpater ta solution a la condition suivante:
        tant que je n'ai pas trouve la balise 1, je copie rien
 
Ca doit etre faisable ca non? Du coup, c'est juste de la lecture, ce qui prend moins de temps et je recupere ainsi directement les donnees que je veux... (Enfin, je dis peut etre des conneries la!)
 
Bon, comme ca devient un peu trop different de mon sujet d'origine, j'ouvre un nouveau post!


Message édité par malaka le 15-10-2008 à 08:54:00
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Copier des donnees entre 2 balises vers Excel

 

Sujets relatifs
préocupations sur excelTransformation des attributs xml sous vba excel
Extraire des données d'une page Web en fonction d'un champ formulaireConversion fichier .sql 3.23 vers 5.0 (mysql)
[Access] Composant pour ouvrir Word ,Excel, imagerecuperer donnees xml en javascript
probleme vb excel inter fichiersouvrir un fichier excel
Passage de parametre d'une popup vers page principalegestion des droits d'acces [VBA excel] [RESOLU]
Plus de sujets relatifs à : Copier des donnees entre 2 balises vers Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR