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

VBA Discussion :

Qu'est ce qui ne va pas?


Sujet :

VBA

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 55
    Points
    55
    Par défaut Qu'est ce qui ne va pas?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim nom_fic As String
       Dim jour As String
       Dim cel As Integer
     
       nom_fic = Worksheets("Feuil4").Cells("14", "F").Value
       jour = Worksheets("Feuil4").Cells("4", "B").Value
     
       With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;Z:\ & jour & \ & nom_fic & ", Destination:= _
            Range("A1"))
    Quand je mets les paramètres en dur sans passer par une variable ça fonctionne.Mais je vais avoir besoin des variable...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par sebeni
    Qu'est ce qui ne va pas?
    Non, moi ça va bien et toi? !!!!
    Je pense qu'en indiquant [VBA-E] et un titre plus explicite, ça serait beaucoup bien mieux...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;Z:\" & jour & "\" & nom_fic, Destination:= _
    Range("A1"))
    le "&" te permet de concatener du texte, et ainsi bien séparer ce qui est une variable et ce qui est une chaine de caracteres

  3. #3
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    C'est quoi TEXT ?

    Sinon au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     nom_fic = Worksheets("Feuil4").Cells("14", "F").Value
    jour = Worksheets("Feuil4").Cells("4", "B").Value
    écrit ça :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     nom_fic = Worksheets("Feuil4").Cells(14, 6).Value
    jour = Worksheets("Feuil4").Cells(4, 2).Value
    ou ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     nom_fic = Worksheets("Feuil4").Range("F14").Value
    jour = Worksheets("Feuil4")Range("B4").Value
    Ton problème la dedans :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With ActiveSheet.QueryTables.Add(Connection:= "TEXT;Z:\" & jour & "\" & nom_fic, Destination:= Range("A1"))
    meme si je comprend rien, c'est tes variables qui entre guillemets. Essaye ce que je viens de mettre

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 55
    Points
    55
    Par défaut problème VBA -E
    Voici le code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Z:\20070416\{DAC07199-74D7-4F63-96AA-2756DDD2A683}.csv", Destination:=Range("A30"))
    Et donc je remplace :
    20070416 par la variable jour et
    {DAC07199-74D7-4F63-96AA-2756DDD2A683}.csv par la variable nom_fic.
    Ce qui me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Z:\ & jour & \ & nom_fic & ", Destination:=Range("A1"))
    Mais qui ne fonctionne pas.
    Donc je suis bloqué.
    Merci de votre aide

  5. #5
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 299
    Points
    4 299
    Par défaut
    Si tu regardais plus haut et ma réponse, tu aurai la résolution de ton problème

  6. #6
    Membre régulier Avatar de biggione
    Inscrit en
    Juillet 2006
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 99
    Points : 91
    Points
    91
    Par défaut c'est ton & qui bug
    le problème vient que le & sépare et concatène des chaine de caractère donc si tu marque:
    "abc & def" la chaine vaut au final: 'abc & def'
    Par contre en mettant:
    "abc" & "def" tu obtiens: 'abcdef'

    voilà bonne journée

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 55
    Points
    55
    Par défaut
    Merci ILLIGHT mais j'ai pas compris ta réponse.

    Et mon problème c'est pas de concaténer 2 chaines de caractères seulement, mais d'intégrer au milieu d'un chaine de caractère des variables...

  8. #8
    Membre actif Avatar de Xtof68
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 217
    Points : 270
    Points
    270
    Par défaut
    Citation Envoyé par sebeni
    Merci ILLIGHT mais j'ai pas compris ta réponse.

    Et mon problème c'est pas de concaténer 2 chaines de caractères seulement, mais d'intégrer au milieu d'un chaine de caractère des variables...

    Justement, toi tu concatènes en tapant "TEXT;Z:\ & jour & \ & nom_fic & "

    or, il faudrait mettre Text;Z :\" & jour & "\"& nom-fic


    parce que tu dois arrêter la définition d'une chaîne par un " avant de mettre & et la variable....

    tu comprends ?


    je te fais un exemple : tu veux obtenir, comme résultat, "nous sommes le 27/04/2007, bonjour", dans lequel "nous sommes le" est une chaîne et "27/04/2007" le résultat de la variable "jour", puis ", bonjour" une deuxième chaîne.
    Ce que TU as fait était de définir ceci de la manière suivante :
    "nous sommes le & jour & ,bonjour"

    Or, tu aurais dû le mettre ainsi
    "nous sommes le " & jour & ", bonjour". (Note les " de début et de fin des chaînes à concaténer).

    Bonne soirée, bon ouik

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    [QUOTE=sebeni]Voici le code qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Z:\20070416\{DAC07199-74D7-4F63-96AA-2756DDD2A683}.csv", Destination:=Range("A30"))
    Et donc je remplace :
    20070416 par la variable jour et
    {DAC07199-74D7-4F63-96AA-2756DDD2A683}.csv par la variable nom_fic.

    Ce qui me donne:
    une fois corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;Z:\" & jour & "\" & nom_fic,Destination:=Range("A1"))
    Mais qui ne fonctionne pas.
    Donc je suis bloqué.
    Merci de votre aide
    Tu as testé ce qu'a mis
    Citation Envoyé par dadavyvy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;Z:\" & jour & "\" & nom_fic, Destination:=Range("A1"))
    .................................................?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Points : 55
    Points
    55
    Par défaut
    Merci a tous pour vos idées.
    Mais ça ne fonctionne pas l'histoire des guillemet j'avais essayé.
    Je vais résumer.
    J'ai enregistré une macro avec Excel pour pouvoir importer des fichiers CVS:
    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
    With ActiveSheet.QueryTables.Add(Connection:="TEXT;Z:\20070416\{DAC07199-74D7-4F63-96AA-2756DDD2A683}.csv", Destination:=Range("A30"))
      '      .Name = "{DAC07199-74D7-4F63-96AA-2756DDD2A683}"
       '     .FieldNames = True
        '    .RowNumbers = False
         '   .FillAdjacentFormulas = False
          '  .PreserveFormatting = True
         '   .RefreshOnFileOpen = False
         '   .RefreshStyle = xlInsertDeleteCells
         '   .SavePassword = False
         '   .SaveData = True
         '   .AdjustColumnWidth = True
         '   .RefreshPeriod = 0
         '   .TextFilePromptOnRefresh = False
         '   .TextFilePlatform = 850
         '   .TextFileStartRow = 1
         '   .TextFileParseType = xlDelimited
         '   .TextFileTextQualifier = xlTextQualifierDoubleQuote
         '   .TextFileConsecutiveDelimiter = False
         '   .TextFileTabDelimiter = False
         '   .TextFileSemicolonDelimiter = False
         '   .TextFileCommaDelimiter = True
         '   .TextFileSpaceDelimiter = False
         '   .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
         '   .TextFileTrailingMinusNumbers = True
         '   .Refresh BackgroundQuery:=False
       ' End With
    Et donc elle fonctionne.

    J'ai voulu remplacer certaine valeur par des variable avec le programme suivant:
    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
    Dim nom_fic As String
       Dim jour As String
     
     
        nom_fic = Worksheets("Feuil4").Range("F14").Value
        jour = Worksheets("Feuil4").Range("B4").Value
     
       With ActiveSheet.QueryTables.Add(Connection:="TEXT;Z:\" & jour & "\" & nom_fic, Destination:=Range("A1"))
            .Name = nom_fic
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = True
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
    '        .Refresh BackgroundQuery:=False
        End With
    Et ça ne fonctionne pas.

    Le but c'est que je puisse ouvrir différent fichier dans différents dossier en fonction des valeurs de mes variables.

    Merci pour toutes votre aide.

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

Discussions similaires

  1. Qu'est ce qui ne va pas dans ma requête ???
    Par Higestromm dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/09/2018, 22h50
  2. [Drag and Drop] qu'est ce qui ne va pas ?
    Par Lady dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 10/05/2007, 12h36
  3. Qu'est ce qui ne marche pas
    Par Maria1505 dans le forum C++
    Réponses: 6
    Dernier message: 19/01/2007, 03h29
  4. qu'est ce qui ne va pas avec cette requête
    Par fk04 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/08/2006, 10h01
  5. sql-serveur : qu'est-ce qui ne va pas dans cette requête ?
    Par isachat666 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/06/2006, 16h52

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