IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Ecriture avec Writeline


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    Bonjour,

    Encore moi et mes difficultés avec VBS.
    Pour l'instant j'arrive a acceder a un fichier excel (csv), à l'ouvrir, a récupérér le contenu d'une cellule, mais en ce qui concerne l'ecriture dans le fichier je ne trouve pas la bonne syntaxe par rapport a mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Option Explicit	
    Dim oApp,oConn,Chemin_Excel,Chemin_Access,Valeur_Site,Valeur_CRB,Valeur_CRB_A,Valeur_SITE_A,Valeur2,moteur,rs,adOpenKeyset , adLockOptimistic, requete,cpt
    Chemin_Excel = InputBox ("Saisir le chemin du fichier :" )
    Chemin_Access=InputBox (" Saisir le chemin de la base de donnée :")
     
    Set oApp =WScript.CreateObject("EXCEL.application")
    oApp.Workbooks.Open (Chemin_Excel)
    oApp.sheets("BUDGET_CVF").Activate
     
    moteur="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    adOpenKeyset=3
    adLockOptimistic=3
    Set oConn = CreateObject("ADODB.Connection")
    oConn.Open moteur & Chemin_Access
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "TRANSCO", oConn, adOpenKeyset, adLockOptimistic
     
     
     
    cpt=1
     
    	Do While oApp.ActiveSheet.Cells(cpt, 1).Value <> ""
    		Valeur_Site = oApp.ActiveSheet.Cells(cpt,2).value
    		Valeur_CRB = oApp.ActiveSheet.Cells(cpt,4).value
    		do while not rs.eof
    			Valeur_CRB_A= rs("CRB")
    			Valeur_Site_A=rs("SITE")
    			If (Valeur_Site=Valeur_Site_A)and (Valeur_CRB=Valeur_CRB_A) then
    				Valeur_ETS=rs("ETS")
    '				oApp.ActiveSheet.Cells(cpt,1).value=Valeur_ETS & ";"
    				oApp.Writeline = "test"
    			end if 
    		rs.movenext
    		loop
    	cpt=cpt+1
    	loop
     
     
    '
    oApp.Workbooks.Close()
    rs.close
    Set Rs = Nothing 
    WScript.Echo("Fini")
    j'avais essayer dans un premier temps comme sur vba d'affecter directement la valeur au contenu de ma cellule avec le ".Value" mais sa ne marche pas non plus.

    merci pour vos réponses.

    Quelqu'un a une idée ?

    car je doute un peu de mon code je pense ne pas etre sur la bonne piste du tout ?

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    pour wrilteline la syntaxe ressemble à :

    pas d'=


    à Voir : Où trouver l'aide en ligne pour VBScript ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    Bonjour,

    je n'ai toujours pas résolu mon probleme
    En faisant plusieurs teste je pense que le code de passe pas apres ma fonction si.
    Peut etre l'ai je mal ecris .???

    C'est a dire quil parcour bien mon fichier excel et ma base de donnée mais quil ne sarrete pas une fois les valeur de la conditon trouver !!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Option Explicit	
    Dim oApp,oConn,Chemin_Excel,Chemin_Access,Valeur_Site,Valeur_CRB,Valeur_CRB_A,Valeur_Split,Valeur_SITE_A,Valeur_Ligne,moteur,rs,adOpenKeyset , adLockOptimistic, requete,cpt,f,fso,ts,fileObj
    Chemin_Excel = InputBox ("Saisir le chemin du fichier :" )
    Chemin_Access=InputBox (" Saisir le chemin de la base de donnée :")
    moteur="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
    adOpenKeyset=3
    adLockOptimistic=3
    Set oConn = CreateObject("ADODB.Connection")
    oConn.Open moteur & Chemin_Access
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open "TRANSCO", oConn, adOpenKeyset, adLockOptimistic
    Const ForReading = 1,ForWriting = 2,TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Set fso = CreateObject("Scripting.FileSystemObject") 
    set fileObj = fso.GetFile(Chemin_Excel)
    set f = fileObj.OpenAsTextStream(ForReading, TristateUseDefault)
    while Not f.AtEndOfStream 
    Valeur_Ligne=f.ReadLine 
    Valeur_Split=Split(Valeur_Ligne,";")
    Valeur_Site=Valeur_Split(0)
    Valeur_CRB=Valeur_Split(2)
    'WScript.Echo(Valeur_Site)
    'WScript.Echo(Valeur_CRB)
     
    do while not rs.eof
    	Valeur_CRB_A= rs("CRB")
    	Valeur_Site_A=rs("SITE")
    '	WScript.Echo(Valeur_Site & " " &  Valeur_Site_A & " " & Valeur_CRB & " " &  Valeur_CRB_A)
    	If (Valeur_Site = Valeur_Site_A) And (Valeur_CRB = Valeur_CRB_A) then
    			Valeur_ETS=rs("ETS")
    			WScript.Echo(Valeur_ETS & "," & Valeur_Ligne)
    			f.WriteLine Valeur_ETS & "," & Valeur_Ligne
    	End if 
    	rs.movenext
    loop
    Wend 
    WScript.Echo("Fini")
    'fso.close()
    '
    f.Close()
    rs.close

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    do while not rs.eof
    	Valeur_CRB_A= rs("CRB")
    	Valeur_Site_A=rs("SITE")
    '	WScript.Echo(Valeur_Site & " " &  Valeur_Site_A & " " & Valeur_CRB & " " &  Valeur_CRB_A)
    	If (Valeur_Site = Valeur_Site_A) And (Valeur_CRB = Valeur_CRB_A) then
    			Valeur_ETS=rs("ETS")
    			WScript.Echo(Valeur_ETS & "," & Valeur_Ligne)
    			f.WriteLine Valeur_ETS & "," & Valeur_Ligne
    	                         '*******************  
                                         Exit Do '<============
                                         '******************** 
                 End if 
    	rs.movenext
    loop
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    J'ai trouver mon erreur !!

    Je pense que le "Writeline" marche bien mais je ne peux pas encore le tester car ma fonction si compare 2 valeurs qui ne sont jamais egales.

    Si on remonte plus haut dans mon code à un moment je fait "split pour récupérer un mot d'une chaine de caractère.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Set fso = CreateObject("Scripting.FileSystemObject") 
    set fileObj = fso.GetFile(Chemin_Excel)
    set f = fileObj.OpenAsTextStream(ForReading, TristateUseDefault)
    while Not f.AtEndOfStream 
    Valeur_Ligne=f.ReadLine 
    Valeur_Split=Split(Valeur_Ligne,";")
    Valeur_Site=Valeur_Split(0)
    Valeur_CRB=Valeur_Split(2)
    ..........
    Voici mes valeurs de départ :
    "chaine1";"chaine2;"chaine3"; ......
    mon code dis bien de récupérer les chaines séparer d'une point virgule et la position.

    Lorsque je fais un "echo" voici mes valeurs d'arrivé :
    Valeur_Site = "chaine1
    et
    Valeur_CRB= chaine3
    Ma question est pourquoi la double quote est rester ? et comment l'enlever ?

    Je vous remercie pour votre aide ....

    on va y arrivé

  6. #6
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Par défaut
    j'ai résolu mon problème en utilisant un MID (maChaine, position, longueur)

    je mets quand meme résolu meme si je n'arrive toujours pas a ecrire dans mon fichier

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Python 2.X] Probleme encode avec ecriture fichier writelines()
    Par Thierry_V dans le forum Général Python
    Réponses: 5
    Dernier message: 05/08/2014, 22h42
  2. Erreur E/S 105 lors d'ecriture avec un fichier text
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2009, 11h29
  3. Ecriture avec FileStream
    Par Bob Groove dans le forum Windows Forms
    Réponses: 3
    Dernier message: 20/02/2007, 17h25
  4. [debutant] ecriture avec FileWriter
    Par newgeek91 dans le forum Langage
    Réponses: 1
    Dernier message: 09/11/2006, 23h19
  5. [C# et RS232] Envoi d'un caractère de trop avec WriteLine()
    Par legillou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/06/2006, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo