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
 
mais ça me donne pas ces trucs là att je change de poste et je reprend
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
voilà c'est fait chef
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
OK compris le problème, j'arrange ça et je revient, tu me laisse quelque minutes quand même !!? :-D
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
 
ok capitain...; je te laisse le ts qu'il faudra!! je t'assure que je sais plus comment te remercier!!
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
encore mon binome qui vx me créer des soucis av mon sauveur, dès que je me lève de la chaise elle commence à utiliser mon compte à gauche et à droite, fais po attention
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
alors mon sauveur? t'en es où?
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
bon.. Pas trop long ?
Tu remplace toute la sub par
Private Sub cmdTextEXCEL_Click()
Dim EX As New Application
Dim Book As Workbook
Dim Feuille As Worksheet
Dim i As Integer
Dim ff As Integer
Dim Contenu As String
Dim TB1, TB2
Dim s As String
Dim P As Integer
Dim d As String
Dim e As Integer
Dim T As Boolean
    ff = FreeFile
    Open "G:\stage\TextversEXCEL\rabat2.txt" For Input As #ff
    'Open "E:\rabat3.txt" For Input As #ff
    While Not EOF(ff)
        Line Input #ff, Contenu
        If Left(Contenu, 4) = " ENU" Then
            Contenu = Mid(Contenu, 2)
            GoSub MiseEnForme
            TB1 = Split(Contenu, " ")
            Line Input #ff, Contenu
            Contenu = Mid(Contenu, 2)
            GoSub MiseEnForme
            TB2 = Split(Contenu, " ")
            GoTo Fermer
        End If
    Wend
Fermer:
    Close #ff
    d = "ENU"
    Set EX = CreateObject("Excel.application")
    EX.Visible = True
    Set Book = EX.Workbooks.Add
    Set Feuille = Book.Sheets(1)
    With Feuille
    For i = 0 To UBound(TB1)
        .Cells(1, i + 1) = TB1(i)
        .Cells(2, i + 1) = TB2(i)
    Next i
    End With
Exit Sub
MiseEnForme:
    e = 1
    While e < Len(Contenu)
        If Asc(Mid(Contenu, e, 1)) = 32 Then
            If Not T Then
                T = True
            Else
                Contenu = Left(Contenu, e - 1) & Mid(Contenu, e + 1)
                Debug.Print Contenu
                Debug.Print Asc(Mid(Contenu, e, 1))
                e = e - 1
            End If
        Else
            T = False
        End If
        e = e + 1
    Wend
Return
End Sub

A+
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Je comprend que tu soit impatiente mais faut laisser le temps au temps...
Ca se fait pas en un coup de cuill§re à pot.
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
wooooooooooooooooooooooow toi t le meilleur!! permet moi de te dire chapeau!!!! je sais pas comment te remercier
vraiment chapeau!! les mots m'echappent
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
faut supprimer d = "ENU"
ça sert à rien
A+
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ok chef
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
et ces 3 là aussi

'Open "E:\rabat3.txt" For Input As #ff

Debug.Print Contenu
Debug.Print Asc(Mid(Contenu, e, 1))
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
ok mon sauveur, en fait si par exemple le fichier que je possède contient bcp de ligne, par exemple comme le fichier ci joint https://www.cjoint.com/?jdqshuVEfT!! comment pourrai-je faire pr qu'il me copie tt le fichier ??
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
en fait j'ai trouvé une solution qui est comme suit:
le code cherche le mot ENU c bon, là je vx lire le numéro de la ligne où se trouve ENU
après on affecte cette valeur (c a d le numéro de la ligne) à une variable "j"(qu'on déclare as integer)
après je compte le nombre des lignes du fichier à l'aide de strLigne qu'à son tour je l'affecte à une autre variable "nbr" (declarée comme integer), après je fais un for " l"(variable déclaré comme integer) l que je lui affecterai j to UBound(nbr)
for l=j to UBound(nbr)
et je commence à copier


voilà l'algorithme!! px tu me ré-aider§?

PS: je sais que j'abuse trop de ta gentillesse mais t'es mon sauveur :D
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
J'espère que t'a tout dit maintenant parce que c'est faire et refaire et refaire le boulot...
Private Sub cmdTextEXCEL_Click()
Dim EX As New Application
Dim Book As Workbook
Dim Feuille As Worksheet
Dim i As Integer
Dim ff As Integer
Dim Contenu As String
Dim TB
Dim s As String
Dim P As Integer
Dim D As Boolean
Dim e As Integer, Lig As Integer
Dim T As Boolean

    Set EX = CreateObject("Excel.application")
    EX.Visible = True
    Set Book = EX.Workbooks.Add
    EX.ScreenUpdating = False
    
    Set Feuille = Book.Sheets(1)
    
    Lig = 1 ' Première ligne où mettre les données, peut être changer.
    'Mise en forme du tableau
    With Feuille
        With .Columns("A:AC")
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
        .Rows("1:1").Select
        Selection.RowHeight = 19.5
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
        End With
        With Selection.Font
            .Name = "Arial"
            .Size = 12
            .ColorIndex = 3
        End With
        
        With Selection.Interior
            .ColorIndex = 6
        End With
        

    End With

    ff = FreeFile
    Open "G:\stage\TextversEXCEL\rabat2.txt" For Input As #ff
    While Not EOF(ff)
        Line Input #ff, Contenu
        If Left(Contenu, 4) = " ENU" Then
            D = True
        End If
        If D Then
            If Len(Contenu) < 2 Then GoTo Fermer
            Contenu = Mid(Contenu, 2)
            GoSub MiseEnForme
            TB = Split(Contenu, " ")
            With Feuille
                For i = 0 To UBound(TB)
                    .Cells(Lig, i + 1) = TB(i)
                Next i
            End With
            Lig = Lig + 1
        End If
    Wend
Fermer:
    Close #ff
    
    Range("A2").Select
    EX.ScreenUpdating = True
Exit Sub
MiseEnForme:
    e = 1
    While e < Len(Contenu)
        If Asc(Mid(Contenu, e, 1)) = 32 Then
            If Not T Then
                T = True
            Else
                Contenu = Left(Contenu, e - 1) & Mid(Contenu, e + 1)
                e = e - 1
            End If
        Else
            T = False
        End If
        e = e + 1
    Wend
Return
End Sub

A+
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
je ss vachement dsl lemrite!! mtn je ss sur un poste ou le VB n'est pas installé, une fois chez moi je le testerai et repardon!!! serieux je sais pas comment te remercier!! merci merci merci
0
mya1 Messages postés 334 Date d'inscription   Statut Membre Dernière intervention   42
 
merciiiii lermite! là ca marche très bien!! t mon sauveur!!!
0