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   -
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
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

mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
c'est en fait pr le visualiser
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
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)
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour Polux,
Effectivement ça devrait fonctionner, mais pour travailler dedans à partir de VB6 ça n'irai pas.
Cordialement.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204 > lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour lermite,

Effectivement j'ai pas percuté, et pas tout lu non plus :-/.

;o)
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bon, tu peu dire pourquoi tu ouvre Excel ? tu ouvre Word ?
Que veux tu faire exactement ?
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
polux le truc ne marche pas!! :(
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
essaye...
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+
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ok chef je vais le tester right now
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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.
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Pas asser de renseignement pour extrapoler, explique mieux.
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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!!
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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...
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
une idée..
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.
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
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.
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
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?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Si.. :D
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
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
mais si 111,9 doit être en dessous de ENU il manque des données dans le fichier que tu à donner dans un poste suivant.
0