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 :

script vbs + fichier excel


Sujet :

VBScript

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut script vbs + fichier excel
    Bonjour,
    Je suis en train de realiser un script qui recupere le login de la personne et qui en fonction de ce login insérer dans un fichier precis un code d'activation pour une application metier.
    Je sais recuperer le login de la personne et aussi changer une valeur a un endroit precis dans un fichier, mais ce que je ne sais pas faire c'est la liaison avec un fichier excel qui me sert de base et que le script va consulte et recherché le login de la personne dans ce fichier pour recuperer son code d'activation.

    Le fichier excel a 2 colonnes une pour le login et une pour le code de la personne.

    Peut être feriez vous autrement, je suis débutant en programmation n'hesitez pas a me le faire savoir!

    Merci d'avance pour vos réponse

    Dokho

  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
    difficile de savoir ou tu en est sans voir de code .. considérons que tu sait lancer excel ouvrir le bon fichier et faire pointer une variable nommé sh sur ta feuille liste de 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
    Dim i
    Dim bTrouve
    Dim stNomATrouver
    stNomAtrouve = "Arthur"
    i = 1
    While Not bTrouve And sh.Cells(i, 1) <> ""
     If sh.Cells(i, 1) = stNomAtrouve Then
       bTrouve = True
        Else
        i = i + 1
     End If
     
    Wend
    If bTrouve Then MsgBox "Le code est : " & sh.Cells(i, 2) Else MsgBox "Introuvable"

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut
    Citation Envoyé par bbil Voir le message
    difficile de savoir ou tu en est sans voir de code .. considérons que tu sait lancer excel ouvrir le bon fichier et faire pointer une variable nommé sh sur ta feuille liste de 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
    Dim i
    Dim bTrouve
    Dim stNomATrouver
    stNomAtrouve = "Arthur"
    i = 1
    While Not bTrouve And sh.Cells(i, 1) <> ""
     If sh.Cells(i, 1) = stNomAtrouve Then
       bTrouve = True
        Else
        i = i + 1
     End If
     
    Wend
    If bTrouve Then MsgBox "Le code est : " & sh.Cells(i, 2) Else MsgBox "Introuvable"
    Bonjour,
    Je ne sais rien faire de tous ceci,
    voici mon code actuellement:

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    'On Error Resume Next
     
    Dim objUser
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Set WshVarEnv = WshShell.Environment("PROCESS")
    strNetBiosDomain = WshVarEnv.Item ("USERDOMAIN")
    strLogonServer = WshShell.ExpandEnvironmentStrings("%Logonserver%")
    strUserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
     
    Set objUser = GetObject("WinNT://" & strNetBiosDomain & "/" _
      & strUserName & ",user")
    MsgBox strUserName
     
     
    Dim oFSO
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    If oFSO.FolderExists("e:\test") Then
    Call searchReplaceFile("e:\test\toto.txt","bubul","totophe")
     
    Else
     
    ' True : pour copier en "écrasant" destination si existe..
    oFSO.CopyFolder "\\sw2k034\doc\test","e:\test",True 
    MsgBox ("fait")
    Call searchReplaceFile("e:\test\toto.txt","tonton","totophe")
    End If
    WScript.Quit
     
     
    function searchReplaceFile(File,LineSearch,LineReplace)
    	Dim oFSO
    	Set oFSO = CreateObject("Scripting.FileSystemObject")
    	if oFSO.FileExists(File) = true Then
     
    		Dim oRegEx
    		Dim monFile
    		Dim sStream
    		Dim sNewStream
     
    		Set oRegEx = New RegExp
     
    		oRegEx.Global = True
    		oRegEx.Pattern = LineSearch
     
    		Set monFile = oFSO.OpenTextFile(File,1)
     
    		sStream = monFile.ReadAll
    		monFile.Close
     
    		sNewStream = oRegEx.Replace(sStream,LineReplace)
     
    		If InStr(sNewStream,LineReplace) = true Then 
    			sNewStream = Replace(sNewStream,LineReplace,3,7) 
    		end if
     
    		Set monFile = oFSO.OpenTextFile(File,2,true)
    		monFile.Write sNewStream
    	 	monFile.Close
    		MsgBox "Modification terminé",vbInformation,"Succès"
    	else
    		MsgBox "Le fichier source est introuvable",Vbcritical,"Erreur"
    	end If
    end function
    Merci de ta réponse

  4. #4
    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

    et il est passé ou ton fichier excel ?

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut
    Citation Envoyé par bbil Voir le message

    et il est passé ou ton fichier excel ?
    C'est la liaison et la recherche dans le fichier excel que je ne sais pas faire.
    Mon fichier excel s'appelle CodeG.xls
    premiere colonne loginAD : JDupuis
    deuxieme colonne Code: 23225

    Voila la structure de mon fichier excel

  6. #6
    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 piloter excel inspire toi de :

    Comment piloter Excel pour créer un classeur.xls ?

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut
    Citation Envoyé par bbil Voir le message
    pour piloter excel inspire toi de :

    Comment piloter Excel pour créer un classeur.xls ?
    Bonjour,
    Me revoila avec mon problème, j'ai fait un truc mais je ne sais pas comment lire les cellules du fichier excel et cela ne marche pas.
    Si j'ai un login stocké dans une variable qui est jdupont, je veux que le script cherche jdupont dans la première colonne et stock dans une autre variable le code de la personne qui se trouve dans la colonne suivante sur la même ligne.
    Voici un debut de code que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Function classeur
    Dim xlapp
    FichierXLS = "c:\fichier.xls"
    FeuilleXLS = "Feuil1"
     
    Set xlapp = CreateObject("Excel.Application")
    xlapp.Visible = True
    xlapp.workbooks.open FichierXLS
    xlapp.sheets(FeuilleXLS).Activate
    xlapp.ActiveSheet.range("A2" ).Activate 'saute la 1ère ligne
    xlapp.Activesheet.Range("A2").value
    End Function
    Merci d'avance de m'aider.
    Cordialement,
    Dohko

  8. #8
    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
    salut,

    déjà oubli tout ce qui est activate , sélection, activeSheet ... ton but n'est pas d'effectuer une animation en bougeant ton curseur dans ta feuille mais de récupérer des données... Et tu peu faire cela directement sans "bouger" le curseur...


    tu as utiliser une variable pointant sur Excel (xlApp) qui va te permettre d'interagir sur ton instance de l'application Excel, pour rendre plus lisible les traitements qui suivent tu peu aussi créer une variable qui "pointe" sur ton classeur et une autre sur ta feuille...

    rajoute leur déclaration

    et effectue l'affectation à l'ouverture du classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set wk = xlapp.workbooks.open (FichierXLS)
    set sh = wk.sheets(FeuilleXLS)
    pour accéder au contenu de ta cellule A2 tu peu ensuite :


    pour finir tu peu fermer ton classeur (sans sauver) et quitter excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wk.close false
    xlApp.quit

  9. #9
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 12
    Par défaut
    Citation Envoyé par bbil Voir le message
    salut,

    déjà oubli tout ce qui est activate , sélection, activeSheet ... ton but n'est pas d'effectuer une animation en bougeant ton curseur dans ta feuille mais de récupérer des données... Et tu peu faire cela directement sans "bouger" le curseur...


    tu as utiliser une variable pointant sur Excel (xlApp) qui va te permettre d'interagir sur ton instance de l'application Excel, pour rendre plus lisible les traitements qui suivent tu peu aussi créer une variable qui "pointe" sur ton classeur et une autre sur ta feuille...

    rajoute leur déclaration
    pour finir tu peu fermer ton classeur (sans sauver) et quitter excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    wk.close false
    xlApp.quit
    et effectue l'affectation à l'ouverture du classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set wk = xlapp.workbooks.open (FichierXLS)
    set sh = wk.sheets(FeuilleXLS)
    pour accéder au contenu de ta cellule A2 tu peu ensuite :


    merci, si je te suis bien je garde ceci :

    FichierXLS = "c:\fichier.xls"
    FeuilleXLS = "Feuil1"

    Set xlapp = CreateObject("Excel.Application")
    Ma question est puis je interroger le fichier excel sans qu'il soit ouvert ? puisque ce script va s'executer par gpo sur mon domaine .
    Cordialement
    dohko

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Par défaut
    bonjour
    je me permet de t'inciter à chercher un peu plus
    google aurais pu te fournir une très bonne base pour ton script.
    Je te conseille d'abord ce tutoriel :
    http://drq.developpez.com/vb/tutoriels/Excel/
    Il fait juste 3 pages et enseigne l'essentiel à savoir

Discussions similaires

  1. export resultat script vbs vers excel
    Par ghostvb dans le forum VBScript
    Réponses: 2
    Dernier message: 27/06/2008, 11h53
  2. script : comparaison de fichiers Excel
    Par M@XflY dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 10/01/2007, 15h15
  3. Script d'envoie d'un fichier excel via un formulaire
    Par Morphine.Nw dans le forum ASP
    Réponses: 4
    Dernier message: 26/01/2006, 13h08
  4. Script extraction de fichier excel pr conversion en mySql ?
    Par Arvulis dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/01/2006, 18h34
  5. Imprimer un fichier texte avec un script vbs
    Par Persons dans le forum Windows
    Réponses: 3
    Dernier message: 23/12/2004, 16h47

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