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 :

vbs Excel Connexion a une base sql et somme


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut vbs Excel Connexion a une base sql et somme
    Bonjour à tous, j'ai 3 questions au niveau d'un script vbs:

    - Est-il possible de réaliser une connexion a une base sql (environnement as400), ainsi d'une requête? (La suite de ma question, est-il possible de remplir un document excel avec les informations de la requête)

    - Est-il possible de réaliser une ouverture de d'une boite de dialogue demande 2 informations (date debut date fin)?

    - Comment en vbs script peut-on obtenir la somme d'une colonne?

    J'ai essayé ceci (dans mon script) mais il doit me manquer un paramètre ou je n'ai pas mit correctement la fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set somme = objWorkbook.WorksheetFunction.Sum(Sheets("extraction facture facto").Range("E:E"))

    Merci d'avance pour votre aide

    guigui69

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    essai de préfixer ton sheets(... par : objWorkbook.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Voici mon script


    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
    srccsvfile = "**********************"
    srcxlsfile = "**********************"
    On Error Resume Next
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open(srcxlsfile)
    objExcel.DisplayAlerts = FALSE
    objExcel.Visible = FALSE
    Set somme = objWorkbook.WorksheetFunction.Sum(objWorkbook.sheets("extraction facture facto").Range("E:E"))
    Set objWorksheet = objWorkbook.Worksheets("extraction facture facto")
      Const ForReading = 1, ForWriting = 2
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set oFile = fso.OpenTextFile(srccsvfile &"Facture-factor-V2-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", ForWriting, True)
    	dim r,c ' r = ligne, c = cellule
       for each r in objWorksheet.range("A1").currentRegion.rows
          st = ""   
           For Each c in r.cells
    	     st = st & c.value & ";"
    	   next
    	  oFile.Writeline st
       next
    	oFile.close
    	objExcel.Quit
    
    If err = 0 Then
    MsgBox "Fichier généré:"+srccsvfile+"Facture-factor-V2-"& Day(Now) &"-"& Month(Now) &"-"& Year(Now) &".csv"
    Else
    MsgBox "Error" & vbCrLf & _
    err.Description
    End If
    J'ai modifier en suivant tes indications mais toujours l'erreur:

    Cette Objet ne gere pas cette propriété ou cette méthode.

    Merci

    guigui69

  4. #4
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    WorksheetFunction s'applique à objExcel et non pas à objWorkbook
    et pas de Set
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    somme = objExcel.WorksheetFunction.Sum(objWorkbook.sheets(...
    et ton Range est bizarre ...
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci pour ton aide, le Range E:E c'est pour réaliser la somme de l'ensemble de la colonne E.

    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
     
     
    srccsvfile = "*********************"
    srcxlsfile = "***************"
    somme = "0"
    On Error Resume Next
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open(srcxlsfile)
    objExcel.DisplayAlerts = FALSE
    objExcel.Visible = FALSE
    somme = objExcel.WorksheetFunction.Sum(objWorkbook.sheets("extraction facture facto").Range("E1:E5000"))
    Set objWorksheet = objWorkbook.Worksheets("extraction facture facto")
      Const ForReading = 1, ForWriting = 2
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set oFile = fso.OpenTextFile(srccsvfile &"Facture-factor-V2-"&  Day(Now) &"-" & Month(Now)& "-" & Year(Now)  & ".csv", ForWriting, True)
    	dim r,c ' r = ligne, c = cellule
       for each r in objWorksheet.range("A1").currentRegion.rows
          st = ""   
           For Each c in r.cells
    	     st = st & c.value & ";"
    	   next
    	  oFile.Writeline st
       next
    	oFile.close
    	objExcel.Quit
     
     
    If err = 0 Then
    MsgBox "Fichier généré:"+srccsvfile+"Facture-factor-V2-"& Day(Now) &"-"& Month(Now) &"-"& Year(Now) &".csv, le montant de cette decade est de:..."
     
    Else
    MsgBox "Error" & vbCrLf & _
    err.Description
    End If
    Voici mon script je voudrait affiché le résultat de la somme (somme) dans une message box, mais cela ne fonctionne pas.

    J'ai essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox "Fichier généré:"+srccsvfile+"Facture-factor-V2-"& Day(Now) &"-"& Month(Now) &"-"& Year(Now) &".csv, le montant de cette decade est de:"+somme+"..."
    Aurait-je mal placé mon code?

    merci

    guigui69

  6. #6
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    je suis justement en train de faire des sommes sous excel.

    Je m'y suis pris comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	tempTotal = "=SUM(A2:A8)"
    	objExcel.Cells(A9).Value = tempTotal
    Et c'est excel qui compte

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    818
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 818
    Points : 49
    Points
    49
    Par défaut
    Merci pour ta réponse mais le calcul fonctionne correctement car si je fait

    MsgBox objExcel.WorksheetFunction.Sum(objWorkbook.sheets("extraction facture facto").Range("E1:E5000"))


    Cela fonctionne mais si je veut le rajouter un peu plus bas:

    MsgBox "Fichier généré:"+srccsvfile+"Facture-factor-V2-"& Day(Now) &"-"& Month(Now) &"-"& Year(Now) &".csv, le montant de cette decade est de:ICI"

    que ca soit somme ou directement la ligne ci-dessus cela ne fonctionne pas.

    Pourquoi?

    Merci

    guigui69

  8. #8
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 189
    Points : 212
    Points
    212
    Par défaut
    essaie avec des & a la place des + pour voir

    Si toujours le souci, essaie un CInt()

Discussions similaires

  1. erreur lors d'une connexion a une base sql server
    Par kifouillou dans le forum JDBC
    Réponses: 16
    Dernier message: 14/05/2013, 12h52
  2. bug de connexion a une base sql server 2000
    Par discogarden dans le forum Visual Studio
    Réponses: 0
    Dernier message: 03/10/2008, 10h55
  3. Connexion a une base SQL server
    Par Flamby38 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/06/2008, 08h21
  4. [2.0][C#] Connexion à une base SQL en C# (dev sous Visual Studio)
    Par skystef dans le forum Accès aux données
    Réponses: 1
    Dernier message: 04/11/2006, 02h10
  5. Connexion a une base SQL dont le nom " Local (Windows N
    Par Mahmoud RAMMAL dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/02/2006, 09h45

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