VB
Résolu
mya1
Messages postés
334
Date d'inscription
Statut
Membre
Dernière intervention
-
mya1 Messages postés 334 Date d'inscription Statut Membre Dernière intervention -
mya1 Messages postés 334 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je ss complètement une débutante en VB 6.0 et j'ai une application à réaliser au cours de ma période de stage! le pb que je rencontre mtn est le fait de concrétiser mon algorithme sous VB. je m'explique: la fonction doit me permettre d'extraire un mot d'un fichier(que je dois copier par après en excel cette fonction de copier en excel je l'ai déjà testé et ça marche!) mais moi je vx juste qu'il me copie depuis le mot que je veux: je vous lance mtn mon algorithme dans l'espoir de trouver qq1 qui pourra m'aider à le codifier en VB:
en 1èr lieu j'ouvre le fichier en mode lecture
je déclare des variables : s=chaine de caractère que je dois initialiser par la 1ère chaine du fichier
D=chaine de caractère initialisée tjs par "ENU"(le mot que je cherche dans tous les fichiers)
i= c'est un compteur qui va s'incrémenter
p=de type pointeur qui va pointer sur la 1ère ligne et l'incrémenter a chaque fois qu'il achève la ligne et ne trouvant pas le mot
trouve=une booléenne initialisée à false
je commence la boucle
tant qu'il n'est pas arrivé à la fin du fichier faire:( do while EOF(1)=false)
compare "s" avec "d"
si s==d alors
trouve=true
copier le texte depuis "ENU"
sinon
on incrémente le compteur
on passe à la ligne suivante(à l'aide du pointeur)
fin tant que
SVP j'ai vraiment besoin de votre aide sinon je serai fichue nan mais complètement fichue.
NB: je dois rendre ce projet dans 2jours et il me reste bcp de choses à traiter.. j'ai confiance en vos compétences pr m'aider
je ss complètement une débutante en VB 6.0 et j'ai une application à réaliser au cours de ma période de stage! le pb que je rencontre mtn est le fait de concrétiser mon algorithme sous VB. je m'explique: la fonction doit me permettre d'extraire un mot d'un fichier(que je dois copier par après en excel cette fonction de copier en excel je l'ai déjà testé et ça marche!) mais moi je vx juste qu'il me copie depuis le mot que je veux: je vous lance mtn mon algorithme dans l'espoir de trouver qq1 qui pourra m'aider à le codifier en VB:
en 1èr lieu j'ouvre le fichier en mode lecture
je déclare des variables : s=chaine de caractère que je dois initialiser par la 1ère chaine du fichier
D=chaine de caractère initialisée tjs par "ENU"(le mot que je cherche dans tous les fichiers)
i= c'est un compteur qui va s'incrémenter
p=de type pointeur qui va pointer sur la 1ère ligne et l'incrémenter a chaque fois qu'il achève la ligne et ne trouvant pas le mot
trouve=une booléenne initialisée à false
je commence la boucle
tant qu'il n'est pas arrivé à la fin du fichier faire:( do while EOF(1)=false)
compare "s" avec "d"
si s==d alors
trouve=true
copier le texte depuis "ENU"
sinon
on incrémente le compteur
on passe à la ligne suivante(à l'aide du pointeur)
fin tant que
SVP j'ai vraiment besoin de votre aide sinon je serai fichue nan mais complètement fichue.
NB: je dois rendre ce projet dans 2jours et il me reste bcp de choses à traiter.. j'ai confiance en vos compétences pr m'aider
A voir également:
- VB
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Vb express - Télécharger - Langages
78 réponses
Il faut employer la fonction shell().
open xxx for Input As #f ne sert à rien dans ce cas.
Il faut faire : shell(CommonDialog1.FileName)
;o)
open xxx for Input As #f ne sert à rien dans ce cas.
Il faut faire : shell(CommonDialog1.FileName)
;o)
pr répondre à polux je dirai que je vais le tester immédiatement! sinn pr lermite je ne vx qu'ouvrir que des fichiers textes ou XLS
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
essaye...
Quand tu crée une fonction il ne faut pas mettre de détection d'erreur tu peu le faire quand tout fonctionne normalement et uniquement si nécessaire.
A+
Private Sub ouvrir_Click() Dim Ext As String Dim strFichier As String 'On Error GoTo ErrHandler CommonDialog1.CancelError = True CommonDialog1.Flags = cdlOFNHideReadOnly CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & "(*.txt)|*.txt|Batch Files (*.bat)|*.bat|classeur microsoft office excel Files(*.xls)|*.xls" CommonDialog1.FilterIndex = 2 ' ouvrir la boite de dialogue CommonDialog1.ShowOpen strFichier = CommonDialog1.FileName Ext = UCase(Right(strFichier, 3)) Select Case Ext Case "XLS" Dim EX As New Application Dim Book As Workbook Dim Feuille As Worksheet Set EX = CreateObject("Excel.application") EX.Visible = True Set Book = EX.Workbooks.Add(strFichier) Set Feuille = Book.Sheets(1) Case "DOC", "TXT" Dim objWord As New Word.Application 'Faire la même chose avec word... Case Else MsgBox "Impossible d'ouvrir ce fichier" Exit Sub End Select End Sub
Quand tu crée une fonction il ne faut pas mettre de détection d'erreur tu peu le faire quand tout fonctionne normalement et uniquement si nécessaire.
A+
ca marche trèèès bien!! t mon sauveur!!!
( et pr le truc de la 1ère fonction de l'importation je vx que tu m'aides à écrire le texte nan pas dans la mm ligned'excel mais plutot chaque mot dans une cellule et à la fin de chaque ligne il retourne et ecrit dans la ligne suivante d'excel)
PS: je sais que j'abuse trop mais c'est que je dois rendre l'application aujourd'hui!!
STP
( et pr le truc de la 1ère fonction de l'importation je vx que tu m'aides à écrire le texte nan pas dans la mm ligned'excel mais plutot chaque mot dans une cellule et à la fin de chaque ligne il retourne et ecrit dans la ligne suivante d'excel)
PS: je sais que j'abuse trop mais c'est que je dois rendre l'application aujourd'hui!!
STP
J'ai oublié de dire.. tu doit ajouter la référence Microsoft Word X.X Object librairy pour ouvrir Word.
Si tu veux ajouter Bat tu peu aussi ouvrir avec Word.Mais tu devrais enlever le filtre *.* tous fichiers pour limiter les erreures.
Si tu veux ajouter Bat tu peu aussi ouvrir avec Word.Mais tu devrais enlever le filtre *.* tous fichiers pour limiter les erreures.
le code que tu m'as filé marche très bien quand il trouve l'occurence "ENU" il fait exactement ce que je voulais faire (c a d il commence l'importation du fichier à partir de cette occurence) le problème mtn qui se pose c'est quand il fait cette importation il met tout dans une seule ligne du fichier excel et c'est pas ce que je vx à vrai dire!
je te donne exemple du fichier texte , normalement le fichier texte est sous cette forme:
ENU OS TRANSMITTER DIS AZM Z% DIR
84.5 BR MELILLA CANADA HIDUM 111.9 341.3 0 D
le resultat que je souhaite avoir sera comme suit
ENU OS TRANSMITTER DIS AZM Z% DIR
84.5 BR MELILLA CANADA HIDUM 111.9 341.3 0 D
voilà le resultat final que j'aurai aimé avoir!!
je te donne exemple du fichier texte , normalement le fichier texte est sous cette forme:
ENU OS TRANSMITTER DIS AZM Z% DIR
84.5 BR MELILLA CANADA HIDUM 111.9 341.3 0 D
le resultat que je souhaite avoir sera comme suit
ENU OS TRANSMITTER DIS AZM Z% DIR
84.5 BR MELILLA CANADA HIDUM 111.9 341.3 0 D
voilà le resultat final que j'aurai aimé avoir!!
Ce sont TOUJOURS les même présentation ?
Parce qu'il n'est pas possible de trouver le mot sauf si c'est toujour la même chose.
Ont peu par exemple détecter Dir ou d'autre mots mais c'est à adapter.
Tu dit...
Parce qu'il n'est pas possible de trouver le mot sauf si c'est toujour la même chose.
Ont peu par exemple détecter Dir ou d'autre mots mais c'est à adapter.
Tu dit...
c'est que en fait le truc d'espace ne marche pas pr te montrer la différence:
je vais essayer de l'expliquer par écrit:
en 1èr lieu il doit mettre le mot ENU ci-dessous le nmbr 89.5
près de ENU il doit écrire (dans une autre cellule) le mot OS ci-dessous le mot BR
près de OS il doit écrire (tjs dans une nouvelle cellule) lemot TRANSMITTER ci-dessous MELILLA CANADA HIDUM
près de TRANSMITTER il écrira par la suite DIS ci-dessous 111.9
....... et ainsi de suite
PS: cela ne faisait qu'une petite partie du fichier il ya aussi d'autre données que j'ai po citées..
voilà grossomodo
je vais essayer de l'expliquer par écrit:
en 1èr lieu il doit mettre le mot ENU ci-dessous le nmbr 89.5
près de ENU il doit écrire (dans une autre cellule) le mot OS ci-dessous le mot BR
près de OS il doit écrire (tjs dans une nouvelle cellule) lemot TRANSMITTER ci-dessous MELILLA CANADA HIDUM
près de TRANSMITTER il écrira par la suite DIS ci-dessous 111.9
....... et ainsi de suite
PS: cela ne faisait qu'une petite partie du fichier il ya aussi d'autre données que j'ai po citées..
voilà grossomodo
une idée..
Ajouter les lignes en plus.
Dim Lig As Long, Col As Integer Lig = 1: Col = 0 With Feuille For i = 0 To UBound(TB) Col = Col + 1 .Cells(Lig, Col) = TB(i) Select Case TB(i) Case "Dir": Col = 0: Lig = Lig + 1 Case "D": Col = 0: Lig = Lig + 1 'Etc... End Select Next i End With
Ajouter les lignes en plus.
ok je l'ai testé et ça marche sur les lignes que tu m'as écrites je vais le modifier pr que ça puisse fonctionner sur tt le fichier!! je te tiendrai au courant du resultat final
REMERCIIIIIII
REMERCIIIIIII
g bcp tenté mais sans resultat!! le fruit de la dernière tentative que g faite était le fait qu'il me décale par une cellule et une colone chaque mot (genre des escaliers)......
HEEEEEEEEEEEEEEEELP PLZ
je sais je sais je ss trop clichée mais bon!! je ne fais qu'une petite débutante devant VS !! merci d'avance
HEEEEEEEEEEEEEEEELP PLZ
je sais je sais je ss trop clichée mais bon!! je ne fais qu'une petite débutante devant VS !! merci d'avance
Tu fais (sur Excel) en manuel 4 ou 5 ligne de ce que tu veux faire, ensuite tu fait un copier coller sur un poste suivant mais tu sélectionne ce que tu vient de coller et tu clic sur le bouton "Garder la mise en forme" (le bouton blanc au dessus de l'éditeur). Fait une prévisualisation avant de lancer pour être certaine que c'est bon.
Ca permet de garder les tabulations pour que ce soit plus clair.
Ca permet de garder les tabulations pour que ce soit plus clair.
c'est pas très pratique tu sais!! psq des fois les fichiers resultats peuvent changer de données tu vois???
t'as pas une autre idée par hazard?
t'as pas une autre idée par hazard?
Si.. :D
J'ai repris le fichier et m'aperçois que c'est d'abord les titres et ensuite les données..
J'ai repris le fichier et m'aperçois que c'est d'abord les titres et ensuite les données..
Set Book = EX.Workbooks.Add Set Feuille = Book.Sheets(1) With Feuille For i = 0 To UBound(TB) .Cells(1, i + 1) = TB(i) Next i .Range("AH1:BE1").Select Selection.Copy Application.CutCopyMode = False Selection.Cut Range("A2").Select ActiveSheet.Paste