begin process at 2012 02 14 11:46:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

passer numéro de fichier en argument


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

passer numéro de fichier en argument

jeudi 2 juillet 2009 à 15:37:05 | passer numéro de fichier en argument

zwyx

Bonjour,

Pas très expérimenté en VB 6 car comme beaucoup, je l'utilise ponctuellement pour me simplifier la vie dans des macros, j'ai une question concernant le passage des numéros de fichiers ouverts en argument, d'une fonction à une autre.


Admettons pour simplifier le contexte, que j'aie une fonction qui altère un fichier, déjà ouvert; dont le numéro est reçu en argument:
Function ModifierFichier(ByVal hFichierTexte AsObject)AsInteger
    Dim iNbModifications AsInteger
    Dim strBufferLigne AsString

    iNbModifications = 0
    strBufferLigne =""

    Do UntilEOF(hFichierTexte)
        Line Input #hFichierTexte, strBufferLigne
        ...
'traitement ligne par ligne
        iNbModifications = iNbModifications + 1
    Loop
    ModifierFichier = iNbModifications
End Function


Dans le corps de ma macro principale, je souhaite pouvoir appeler ma précédente fonction avec n'importe quel fichier ouvert:
Sub ModifierTout()
    Dim hFichierTexte
AsObject
    Dim iNbModifications AsInteger

    hFichierTexte = FreeFile()
    Open("C:\Documents and Settings\foo.txt")ForInputAs#hFichierTexte
    'Application.Cursor = xlWait
    iNnModifications = ModifierFichier(hFichierTexte)
    'Application.Cursor = xlDefault
    Close #hFichierTexte
End Sub



Mais écrit comme ça, l'exécution provoque une erreur "propriété ou méthode non gérée par cet objet". J'ai sans doute fait une confusion entre hFichierTexte et #hFichierTexte, ou alors le passage des argument ByRef au lieu de ByVal. Si quelqu'un a une idée pour m'éclairer suite à ce mail coloré ? À moins que ce que je ne souhaite faire soit techniquement impossible en VB.

Merci d'avance.
jeudi 2 juillet 2009 à 17:34:05 | Re : passer numéro de fichier en argument

PCPT

Administrateur CodeS-SourceS
Réponse acceptée !
salut,

tout en haut de ton code, ajoutes OPTION EXPLICIT

çà sert à relever les erreurs de variables non déclarées
on voit de suite la faute de frappe ici :
iNnModifications

ensuite FreeFile renvoie un INTEGER, pas un OBJECT

le chemin ne doit pas être entre parenthèses

pour le reste, c'est à peu près bon ;)
ce qui donne :



Function  ModifierFichier( ByVal  hFichierTexte As Integer ) As Long
    ModifierFichier = 0
    Dim strBufferLigne As String

    strBufferLigne = ""

    Do Until EOF(hFichierTexte)
        Line Input #hFichierTexte, strBufferLigne
        Debug.Print strBufferLigne
        'traitement ligne par ligne
        ModifierFichier = ModifierFichier + 1
    Loop
End Function

Sub  ModifierTout()
    Dim hFichierTexte As Integer
    Dim iNbModifications As Long

    hFichierTexte = FreeFile()
    Open "C:\Documents and Settings\foo.txt" For Input As #hFichierTexte
    'Application.Cursor = xlWait
    iNbModifications = ModifierFichier(hFichierTexte)
    'Application.Cursor = xlDefault
    Close #hFichierTexte
End Sub

Coloration VB6, VBA, VBS


NB : attention, MACRO = VBA, pas VB6
catégorie du forum modifiée


jeudi 2 juillet 2009 à 17:54:37 | Re : passer numéro de fichier en argument

zwyx

Merci beaucoup pour ton aide. Et désolé de mettre trompé de catégorie pour poster mon message.

Bonne soirée.


Cette discussion est classée dans : fichier, numéro, argument, hfichiertexte, inbmodifications


Répondre à ce message

Sujets en rapport avec ce message

manipulation de fichier [ par wally ] J'ai un fichier de plusieurs dizaines de lignes. Chaque ligne du fichier commence par un numéro de 12 chiffres qui peut se répéter sur plusieurs ligne [VB.net] Comment lancer une fichier xls à un endroit spécifié en argument? [ par Maxiguizmo ] Voila deux heures que je cherche comme faire pour ouvrir un fichier xls dans excel mais en lui passant en argument l'endroit sur lequel il doit d'ouvr Selectionner la colonne numéro 2, 4, 6 sur ACCESS [ par Dzvirfein ] Je vous explique mon problème, J'importe des données d'un fichier CSV vers une base de données. Selon que le fichier CSV contient des En-têtes ou non Afficher les données d'un fichier texte [ par davidguillon ] B'jour!Je débute en VB et ne parviens pas à trouver ce que je souhaite dans l'aide du forum...J'ai un formulaire dans mon application dans lequel l'ut Modem 56K Transfert de fichier [ par totoph2109 ] Je cherche comment faire pour utiliser un modem 56K pour transférer un fichier entre 2 PC. Le pc client appele le numéro de téléphone du serveur et ce Récupérer le numéro du fichier qui plante [ par rackne ] Bonjour, j'ai fais une appli VB6 qui gère un certain nombre de fichierVu que c'est pour une entreprise, j'fais ca proprement et là j'en suis à la gest Recherche [ par alpsat ] BonjourMon besoin est pour une application pro de valoriser des données sous Excelexemple: sur un fichier reçu est indiqué un téléphone(le client), la VB6 : enlever titre et numéro de page d'un fichier txt [ par Rayno79 ] Salut à tous,Je voudrais savoir si il est possible de supprimer le titre et le numéro de page lors de l'impression d'un fichier txt. Mon problème est Problème fermeture fichier [ par Toto3544 ] Salut à tous.J'ai un problème pour manipuler des fichiers.Je m'explique. Je souhaite ouvrir un fichier .csv en mode Input pour récupérer des infos don entrer la valeur d'une cellule dans une variable. [ par livinho38 ] bonjour,je dispose de deux fichier, un fichier avec des onglets (leur nom est un numéro de client)et un deuxieme fichier , ou le 1er onglet comporte l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,778 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales