[VBA] Enregistrer dans un fichier text

BillRussell Messages postés 7 Date d'inscription vendredi 27 avril 2012 Statut Membre Dernière intervention 17 avril 2015 - 11 juin 2012 à 15:22
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 18 juin 2012 à 21:49
Bonjour,
Ci dessous mon code. je n'arrive pas à afficher les valeurs que je récupère de GetAllValues dans un tableau et surtout comment enregistrer ce tableau de valeurs dans un fichier texte.. merci de me donner des idées =)



Private Sub CommandButton6_Click()
Dim FunctionData As BKDataSet
Dim MyPulseData As Variant
Dim maxX As Long
Dim maxZ As Long
Dim Entries As Long
Dim Data As DataObject
Set FunctionData = Project.FunctionOrganiser.FunctionGroups("LOG" ).Functions("auto1" ).FunctionData
FunctionData.GetAllValues (True)

'Si le dataset est vide le GetallValues va afficher une exception
'Introduire une gestion des erreurs
On Error Resume Next
For i = 1 To 100
MyPulseData = FunctionData.GetAllValues(True)
If Err.Number = 0 Then
Exit For
End If
Next i
If i > 100 Then
MsgBox Err.Description
Exit Sub
End If
On Error GoTo 0 'Remise à zero des erreurs

Entries = FunctionData.NumberOfXAxisEntries
ReDim ValueArr(Entries - 1) As Double 'Variable de type tableau
FunctionData.RealValues ValueArr 'Récuperation des Y
TextBox1.Text = Entries

Data = FunctionData.GetAllValues(True)
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("C:\Documents and Settings\All Users\Desktop\fichier.txt")
With MonFic
         writeLine Data
End With

Msg ="Ecriture Réussie dans fichier.txt"
MsgBox (Msg)

End Sub



Le monde a commencé sans l'homme, il finira sans lui..

4 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
18 juin 2012 à 21:04
Bonjour,

Pourquoi avoir utilisé la coloration syntaxique C/C++ alors que c'est du VB ?

Sinon, pourquoi utiliser FSO alors que les fonctions intégrées sont bien ?
Open, Close, Print

VBA n'est pas VB.NET, je déplace le sujet.

C'est quel VBA, Excel, Word, ... ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juin 2012 à 21:21
Bonjour,
Moi, ce que "j'aime" bien (euh ...), c'est ce passage :
On Error Resume Next
For i = 1 To 100
  MyPulseData = FunctionData.GetAllValues(True)
  If Err.Number = 0 Then
    Exit For  ' donc on quitte la boucle dès le 1er tour si pas d'erreur ! A quoi sert alors la boucle ?
  End If
Next i
If i > 100 Then ' on y arrivera que si erreur à chaque tour de la boucle ! 
  MsgBox Err.Description
  Exit Sub
End If

qui est tel, que, par la force des choses et par la simple compréhension d'une boucle For ... to ... Next :
on ne continue la boucle que si erreur tout le long !
Et si erreur tout le long (donc pas sorti du For) ===> i = 101 et on sort de la procédure ! s mal (euh ...)
Je vais allez boire un coup à la santé de celui qui esquive tout et écrit une telle procédure, dans laquelle on n'atteidra jamais les instructions suivantes, à savoir :
On Error GoTo 0 'Remise à zero des erreurs

Entries = FunctionData.NumberOfXAxisEntries
ReDim ValueArr(Entries - 1) As Double 'Variable de type tableau
FunctionData.RealValues ValueArr 'Récuperation des Y
TextBox1.Text = Entries

Data = FunctionData.GetAllValues(True)
Set FSys = CreateObject("Scripting.FileSystemObject")
Set MonFic = FSys.CreateTextFile("C:\Documents and Settings\All Users\Desktop\fichier.txt")
With MonFic
         writeLine Data
End With

Msg ="Ecriture Réussie dans fichier.txt"
MsgBox (Msg)

Je suppose donc qu'elles ne sont là que pour "amuser la galerie" ou paumer un éventuel candidat au "cracking"
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juin 2012 à 21:33
Non. Excuses.
Après test :
on n'exécute la seconde partie de la procédure que si erreur rencontrée en chemin dans la boucle.
Quel est le propos étrange d'une telle démarche ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 juin 2012 à 21:49
petit test de rien du tout pour vérifier :
Private Sub commandbutton1_click()
  n = 1
 ' n = 0
  On Error Resume Next
  For i = 1 To 100
    'n = IIf(i Mod 5, 0, 1)
   toto = 1 / n
   If Err.Number = 0 Then
     Exit For
   End If
  Next i
  MsgBox i
  If i > 100 Then
    Exit Sub
  End If
  On Error GoTo 0 'Remise à zero des erreurs

  MsgBox "coucou"
End Sub


jouer maintenant en basculant (les deux ou une seule) les lignes commentées
CQFD
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous