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 :

Contenu d'une variable non pris en compte alors que correct


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Contenu d'une variable non pris en compte alors que correct
    Bonjour,

    J'ai un souci avec une variable qui devrait indiquer un emplacement de cellule excel

    Ma variable est renseignée à l'aide d'un select
    case "03" CellsL = "10, 9"

    le msgbox effectué avant le traitement de celle-ci montre que le contenu est bien celui attendu 10, 9

    msgbox CellsL
    Lect1 = objExcel.Worksheets(WorksL).Cells(CellsL).Value

    Mais le contenu de la cellule retournée est celui de la 1, 11
    Lorsque je renseigne manuellement l'emplacement de la cellule dans la commande cells, j'ai bien le bon retour, ce qui laisse à penser que c'est le contenu de ma variable qui n'est pas correctement interprété.

    Quelqu'un a-t-il une idée ?
    Je débute en vbs donc c'est certainement un truc tout bête.
    J'ai essayé de déclarer ma variable en variant "dim CellsL as variant" mais j'otiens l'erreur Fin d'instruction attendue

    Merci de vos conseils

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    La déclaration Dim CellsL As Variant n'est pas acceptée en VBS : Les variables ne doivent pas être typées, pas comme en VB.

    Si tu nous mettais la partie du code qui pose problème et une petite esquisse du contenu du fichier Excel, cela nous permettrait de t'aider.
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2016
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    Merci pour ta réponse
    voici la partie du script concernée
    Lorsque la variable arrive à la lecture de la cellule, elle comprend bien les bonnes données (10, 9) dans ce cas mais c'est le contenu de la cellule 1, 11 qui est remonté

    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
    Set Lect1 = Nothing
    Set CellsL = Nothing 
    FichierL = SdICT
    WorksL = 1
    Select Case Mois_traite
    case  "01" CellsL = "10, 7"
    case  "02" CellsL = "10, 8"
    case  "03" CellsL = "10, 9" 
    case  "04" CellsL = "10, 10"
    case  "05" CellsL = "10, 11"
    case  "06" CellsL = "10, 12"
    case  "07" CellsL = "10, 1"
    case  "08" CellsL = "10, 2"
    case  "09" CellsL = "10, 3"
    case  "10" CellsL = "10, 4"
    case  "11" CellsL = "10, 5"
    case  "12" CellsL = "10, 6"
    End Select
    Call Lecture_Excel
    msgbox Lect1
     
     
    '54 ###################################
     
    Sub Lecture_Excel
    Dim objExcel, objClasseur, ExcelFile, strCell 
    msgbox FichierL
    Set objExcel = CreateObject("Excel.Application") 
    Set objClasseur = objExcel.WorkBooks.Open(FichierL) 
    objExcel.DisplayAlerts = False 
    objExcel.Application.Visible = False 
    msgbox WorksL
    msgbox CellsL
    Lect1 = objExcel.Worksheets(WorksL).Cells(CellsL).Value 
    objExcel.Quit 
    Set objExcel = Nothing 
    Set objClasseur = Nothing 
    End Sub
    Fichier excel

    F. Cell. F. Cell. Janvier Février Mars Avril
    Coef Valeur
    1 1 3792 8999 567
    1 1 1,3 788 956 1075
    1 1 1 2139 2352 2524
    1 1 0,8 137 110 146
    1 1 0,5 165 114 9999
    1 1 0,2 987 229 309

    4216 3761 14053 0
    1 1 -0,2 25 31 39

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Points : 304
    Points
    304
    Par défaut
    Salut Corwin69 !

    Une remarque toute bête ... As-tu essayé de renommer ta variable autrement qu'en "CellsL" ?
    Genre "CelluL" par exemple ... en tous cas un nom de variable qui ne contienne pas celui d'une commande.

    ++

  5. #5
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    Juillet 2009
    Messages
    2 415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2 415
    Points : 5 805
    Points
    5 805
    Par défaut
    Pour le fichier Excel, une capture d'écran serait plus lisible(juste la partie invoquée dans ton dernier message)
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
    Vous pouvez consulter mes contributions
    Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour, bonjour !

    Si "10, 9" représente des numéros de ligne et de colonne, alors cette syntaxe Cells(CellsL) est aberrante !

    Comme pourtant expliqué dans l'aide VBA d'Excel - suffit de la consulter ! - la syntaxe est Cells(n° ligne, n° colonne)

    Voilà, voilà !

    ______________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/04/2015, 09h00
  2. Modification d'une variable non prise en compte
    Par Zuthos dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 16/01/2013, 14h19
  3. Onclick non pris en compte sur une div ( sous IE7)
    Par le_chomeur dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/09/2008, 16h40
  4. C# Modification d'une textbox non pris en compte
    Par pixigol dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 09/03/2008, 22h27
  5. [9i] hint dans une vue non pris en compte
    Par Nico57 dans le forum SQL
    Réponses: 3
    Dernier message: 20/08/2007, 14h20

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