Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
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 18/10/2011, 11h47   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
Par défaut Concatenation VBA XL

Bonjour,

Je débute en VBA et avec quelques morceaux de codes trouvé sur le web j’ai commence la procedure ci-dessous.
Le but est d’écrire dans une cellule la formule suivante :
='D:\My Documents\[test.xls]test!$B$22
Sachant que le chemin ('D:\My Documents) et le nom de fichier (\[test.xls]test!$B$22) sont des variables.
Le code fonctionne sauf qu’à la dernière ligne lorsque je met le signe = entre guillemets ça ne marche pas !
Malgré des heures passées sur le web ne je trouve pas l’erreur, pouvez-vous m’aider SVP,
Merci

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
34
Sub afficherCheminDosier_BrowseForFolder()
 
'Demande le chemin du fichier:
 
Dim objShell As Object, objFolder As Object
Dim SecuriteSlash As Integer
Dim Chemin As String
 
Set objShell = CreateObject("Shell.Application") 'recuperer nom repertoire cible
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
 
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path
If objFolder.Title = "" Then Chemin = ""
SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
 
Range("AA1") = Chemin
 
'demande de selectionner le fichier:
 
    Dim strCsv As String, strTemp() As String
    strCsv = Application.GetOpenFilename("All Files ,*.*", , "Sélectionner le fichier des pièces GOOD à ouvrir")
    [AB1] = Dir(strCsv)
 
fich = "[" & Dir(strCsv) & "]"
 
Cells(2, 27).FormulaR1C1 = Chemin
Cells(3, 27).FormulaR1C1 = "\" & fich & "Feuil1'!C2)"
a = Range("AA2").Text
b = Cells(3, 27).Text
Range("AA4").FormulaR1C1 = "'" & a & b '''''''''''''''''''''''''''''Range("AA4").FormulaR1C1 = "='" & a & b
 
End Sub
jerjou26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h00   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

Pourquoi une apostrophe après le "=" ? Quelles sont les valeurs de a et b ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 12h21   #3
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour
Avec

Code :
Range("A3").FormulaR1C1 = "=" & a & b & ""
Tu dis

Bon courage
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 14h33   #4
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par Daniel.C Voir le message
Bonjour,

Pourquoi une apostrophe après le "=" ? Quelles sont les valeurs de a et b ?
l'apostrophe là pour respecter la formule excel:
='D:\My Documents\[TEST.xls]test'!$B$22

a et b sont les variables: chemin du fichier (a) et nom du fichier (b)

Citation:
Envoyé par Jean-Pierre49 Voir le message
Bonjour
Avec

Code :
Range("A3").FormulaR1C1 = "=" & a & b & ""
Tu dis

Bon courage
Merci mais ça ne fonctionne pas. la formule est bien inscrite dans la cellule mais sans le signe =

Je cherche, je cherche.....pas évident pour moi, mais avec le web!
jerjou26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 14h56   #5
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Le code suivant fonctionne pour moi :

Code :
1
2
3
a = "D:\My Documents"
b = "\[TEST.xls]test'!$B$22"
Range("A3").Formula = "='" & a & b
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 15h58   #6
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
Merci Daniel.
Effectivement ça fonctionne comme ça mais pas dans mon code avec des variables!
Cdlt,
jerjou26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 16h08   #7
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Quelle est la différence ? Quel est le contenu de tes deux cellules ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 16h23   #8
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
Et bien justement, je ne vois pas de différence, mais ton code seul fonctionne correctement, mais mon code ne fonctionne pas.

Cdlt,
jerjou26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 16h42   #9
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Tu as bien mis ".Formula", pas ".FormulaR1C1" ?
Et si tu enlèves :
est-ce que ça plante sur la même ligne ?
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 15h16   #10
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
En fait la macro ne plante pas, simplement ça n'écrit rien dans le cellule.
Par exemple si je mets:
Code :
Range("AA4").Formula = "'" & a & b
il y a bien un resultat dans la cellule.

Par contre si je mets:
Code :
Range("AA4").Formula = "='" & a & b
(je rajoute juste le signe =) Alors le code fonctionne (pas d'erreur) mais la cellule est vide.
Je ne comprends pas!
jerjou26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 15h19   #11
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Enlève le :

ligne 11.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 15h29   #12
Invité de passage
 
Inscription : octobre 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 11
Points : 0
Points : 0
Ca marche!
Finalement 2 lignes plus haut il y avait une paranthèse en trop dans cette ligne:
Code :
Cells(3, 27).FormulaR1C1 = "\" & fich & "Sheet1'!C2)"
Je l'ai enlevé mon code
Code :
Range("AA4").Formula = "='" & a & b
fonctionne avec le signe =

Merci de votre support et désolé
jerjou26 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 05h23.


 
 
 
 
Partenaires

Hébergement Web