Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/04/2007, 12h14   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 71
Points : 14
Points : 14
Par défaut Qu'est ce qui ne va pas?

Code :
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...
sebeni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 12h19   #2
Membre éclairé
 
Inscription : octobre 2006
Messages : 390
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 390
Points : 396
Points : 396
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 :
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
dadavyvy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 12h21   #3
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
C'est quoi TEXT ?

Sinon au lieu de :

Code :
1
2
 nom_fic = Worksheets("Feuil4").Cells("14", "F").Value
jour = Worksheets("Feuil4").Cells("4", "B").Value
écrit ça :


Code :
1
2
 nom_fic = Worksheets("Feuil4").Cells(14, 6).Value
jour = Worksheets("Feuil4").Cells(4, 2).Value
ou ça :

Code :
1
2
 nom_fic = Worksheets("Feuil4").Range("F14").Value
jour = Worksheets("Feuil4")Range("B4").Value
Ton problème la dedans :

Code :
 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
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 13h22   #4
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 71
Points : 14
Points : 14
Par défaut problème VBA -E

Voici le code qui fonctionne:
Code :
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 :
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
sebeni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 14h16   #5
Membre Expert
 
Avatar de illight
 
Inscription : septembre 2005
Messages : 1 016
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : septembre 2005
Messages : 1 016
Points : 1 044
Points : 1 044
Si tu regardais plus haut et ma réponse, tu aurai la résolution de ton problème
__________________
Avant de poster, et http://www.developpez.com/sources/

N'oubliez pas le

Vous une brute ? faites voir
illight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 15h21   #6
Membre du Club
 
Avatar de biggione
 
Inscription : juillet 2006
Messages : 99
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 99
Points : 62
Points : 62
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
__________________
Location saisonnière dans le Lot:
http://www.lot-holidays.com
biggione est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 16h47   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 71
Points : 14
Points : 14
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...
sebeni est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 17h30   #8
Membre confirmé
 
Avatar de Xtof68
 
Inscription : avril 2007
Messages : 219
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 219
Points : 241
Points : 241
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
Xtof68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 18h40   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
[QUOTE=sebeni]Voici le code qui fonctionne:
Code :
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.

Citation:
Ce qui me donne:
une fois corrigé
Code :
1
2
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Z:\" & jour & "\" & nom_fic,Destination:=Range("A1"))
Citation:
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 :
1
2
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Z:\" & jour & "\" & nom_fic, Destination:=Range("A1"))
.................................................?
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 13h34   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 71
Points : 14
Points : 14
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 :
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 :
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.
sebeni est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h41.


 
 
 
 
Partenaires

Hébergement Web