Bonjour,
J'arrive sans probl=E8me =E0 cr=E9er un fichier Excel en passant par : clic
droit sur le bouton de commande de mon formulaire/Propri=E9t=E9s/
g=E9n=E9rateur de Macro.../Action/Transf=E9rerFeuilleCalcul/, etc...
Je souhaiterais le faire avec du code VBA :
Private Sub Commande8_Click()
Dim xlApp1 As Excel.Application
Dim wkb As Excel.Workbook
Set xlApp1 =3D GetObject(, "Excel.Application")
StrSQL =3D "SELECT Tab1.Niveau FROM Tab1WHERE Tab1.GS_dorigine =3D " &
Me.GS_dorigine & ""
Bon, on commence à s'approcher de la solution... La requete "Requete_Temporaire" a bien été créée dans l'interface des requetes, mais le DoCmd ne s'exécute pas et j'ai le message :"Incompatibilité de type" J'ai oublié le code :
Dim qd As QueryDef On Error GoTo Commande81_Click_Err Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine & "") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Requete_Temporaire", "D:BafTableau1.xls" DoCmd.DeleteObject acQuery, "Requete_Temporaire" Commande81_Click_Exit: Exit Sub Commande81_Click_Err: MsgBox Error$ Resume Commande81_Click_Exit
On 20 mar, 15:11, eric.z...@club-internet.fr wrote:
Bon, on commence à s'approcher de la solution...
La requete "Requete_Temporaire" a bien été créée dans l'interface des
requetes, mais le DoCmd ne s'exécute pas et j'ai le
message :"Incompatibilité de type"
J'ai oublié le code :
Dim qd As QueryDef
On Error GoTo Commande81_Click_Err
Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT
Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine &
"")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8,
"Requete_Temporaire", "D:BafTableau1.xls"
DoCmd.DeleteObject acQuery, "Requete_Temporaire"
Commande81_Click_Exit:
Exit Sub
Commande81_Click_Err:
MsgBox Error$
Resume Commande81_Click_Exit
Bon, on commence à s'approcher de la solution... La requete "Requete_Temporaire" a bien été créée dans l'interface des requetes, mais le DoCmd ne s'exécute pas et j'ai le message :"Incompatibilité de type" J'ai oublié le code :
Dim qd As QueryDef On Error GoTo Commande81_Click_Err Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine & "") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Requete_Temporaire", "D:BafTableau1.xls" DoCmd.DeleteObject acQuery, "Requete_Temporaire" Commande81_Click_Exit: Exit Sub Commande81_Click_Err: MsgBox Error$ Resume Commande81_Click_Exit
Gilles MOUGNOZ
Ton code fonctionne bien chez moi (en changeant un peu les noms de table et de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entourer <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes... -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bon, on commence à s'approcher de la solution... La requete "Requete_Temporaire" a bien été créée dans l'interface des requetes, mais le DoCmd ne s'exécute pas et j'ai le message :"Incompatibilité de type" J'ai oublié le code :
Dim qd As QueryDef On Error GoTo Commande81_Click_Err Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine & "") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Requete_Temporaire", "D:BafTableau1.xls" DoCmd.DeleteObject acQuery, "Requete_Temporaire" Commande81_Click_Exit: Exit Sub Commande81_Click_Err: MsgBox Error$ Resume Commande81_Click_Exit
Ton code fonctionne bien chez moi (en changeant un peu les noms de table et
de champs).
Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entourer
<Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci:
WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'")
Par contre, si c'est un numérique entier, cela devrait fonctionner sans
apostrophes...
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Bon, on commence à s'approcher de la solution...
La requete "Requete_Temporaire" a bien été créée dans l'interface des
requetes, mais le DoCmd ne s'exécute pas et j'ai le
message :"Incompatibilité de type"
J'ai oublié le code :
Dim qd As QueryDef
On Error GoTo Commande81_Click_Err
Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT
Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine &
"")
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8,
"Requete_Temporaire", "D:BafTableau1.xls"
DoCmd.DeleteObject acQuery, "Requete_Temporaire"
Commande81_Click_Exit:
Exit Sub
Commande81_Click_Err:
MsgBox Error$
Resume Commande81_Click_Exit
Ton code fonctionne bien chez moi (en changeant un peu les noms de table et de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entourer <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes... -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Bon, on commence à s'approcher de la solution... La requete "Requete_Temporaire" a bien été créée dans l'interface des requetes, mais le DoCmd ne s'exécute pas et j'ai le message :"Incompatibilité de type" J'ai oublié le code :
Dim qd As QueryDef On Error GoTo Commande81_Click_Err Set qd = CurrentDb.CreateQueryDef("Requete_Temporaire", "SELECT Tab1.Niveau FROM Tab1 WHERE Tab1.GS_dorigine = " & Me.GS_dorigine & "") DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, "Requete_Temporaire", "D:BafTableau1.xls" DoCmd.DeleteObject acQuery, "Requete_Temporaire" Commande81_Click_Exit: Exit Sub Commande81_Click_Err: MsgBox Error$ Resume Commande81_Click_Exit
eric.zzzz
On 20 mar, 15:21, "Gilles MOUGNOZ" wrote:
Re, Peux-tu nous récapituler le code que tu utilises ? Au cas où, dans l'instruction d'export, il faut remplacer "strSQL" par "Requete_Temporaire" Entretemps j'avais rajouté le code
On 20 mar, 15:21, "Gilles MOUGNOZ" <gmoug...@courrierchaud.aifair>
wrote:
Re,
Peux-tu nous récapituler le code que tu utilises ?
Au cas où, dans l'instruction d'export, il faut remplacer "strSQL" par
"Requete_Temporaire"
Entretemps j'avais rajouté le code
Re, Peux-tu nous récapituler le code que tu utilises ? Au cas où, dans l'instruction d'export, il faut remplacer "strSQL" par "Requete_Temporaire" Entretemps j'avais rajouté le code
eric.zzzz
On 20 mar, 15:51, "Gilles MOUGNOZ" wrote:
Ton code fonctionne bien chez moi (en changeant un peu les noms de table e t de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entour er <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes...
C'est bien du texte; ça ne marche pas ni avec les guillements (") ni les apostrophes ('); OK, je vais chercher ...
On 20 mar, 15:51, "Gilles MOUGNOZ" <gmoug...@courrierchaud.aifair>
wrote:
Ton code fonctionne bien chez moi (en changeant un peu les noms de table e t
de champs).
Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entour er
<Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci:
WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'")
Par contre, si c'est un numérique entier, cela devrait fonctionner sans
apostrophes...
C'est bien du texte; ça ne marche pas ni avec les guillements (") ni
les apostrophes ('); OK, je vais chercher ...
Ton code fonctionne bien chez moi (en changeant un peu les noms de table e t de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entour er <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes...
C'est bien du texte; ça ne marche pas ni avec les guillements (") ni les apostrophes ('); OK, je vais chercher ...
Gilles MOUGNOZ
Reprends le code d'origine et ajoutes une apostrophe juste avant le guillement qui suit le signe = et une autre entre les deux guillemets qui suivent ta variable. Avec des espaces pour la lisibilité, cela donne: WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ") C'est mieux ? -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Ton code fonctionne bien chez moi (en changeant un peu les noms de table et de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entourer <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes... C'est bien du texte; ça ne marche pas ni avec les guillements (") ni
les apostrophes ('); OK, je vais chercher ...
Reprends le code d'origine et ajoutes une apostrophe juste avant le
guillement qui suit le signe = et une autre entre les deux guillemets qui
suivent ta variable. Avec des espaces pour la lisibilité, cela donne:
WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ")
C'est mieux ?
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Ton code fonctionne bien chez moi (en changeant un peu les noms de table
et
de champs).
Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut
entourer
<Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci:
WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'")
Par contre, si c'est un numérique entier, cela devrait fonctionner sans
apostrophes...
C'est bien du texte; ça ne marche pas ni avec les guillements (") ni
Reprends le code d'origine et ajoutes une apostrophe juste avant le guillement qui suit le signe = et une autre entre les deux guillemets qui suivent ta variable. Avec des espaces pour la lisibilité, cela donne: WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ") C'est mieux ? -- Bonne continuation ------------------------------------------------------------------------------------------- http://www.mpfa.info : c'est bonheur pour ton ordinateur ! -------------------------------------------------------------------------------------------
Ton code fonctionne bien chez moi (en changeant un peu les noms de table et de champs). Quel est le type du champ <GS_dorigine> ? Si c'est du texte il faut entourer <Me.GS_dorigine> par des apostrophes ('), ce qui donne ceci: WHERE Tab1.GS_dorigine = '" & Me.GS_dorigine & "'") Par contre, si c'est un numérique entier, cela devrait fonctionner sans apostrophes... C'est bien du texte; ça ne marche pas ni avec les guillements (") ni
les apostrophes ('); OK, je vais chercher ...
eric.zzzz
On 20 mar, 17:09, "Gilles MOUGNOZ" wrote:
Reprends le code d'origine et ajoutes une apostrophe juste avant le guillement qui suit le signe = et une autre entre les deux guillemets qu i suivent ta variable. Avec des espaces pour la lisibilité, cela donne: WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ") C'est mieux ?
Non, tjrs pareil; j'ai le message :"Incompatibilité de type"
On 20 mar, 17:09, "Gilles MOUGNOZ" <gmoug...@courrierchaud.aifair>
wrote:
Reprends le code d'origine et ajoutes une apostrophe juste avant le
guillement qui suit le signe = et une autre entre les deux guillemets qu i
suivent ta variable. Avec des espaces pour la lisibilité, cela donne:
WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ")
C'est mieux ?
Non, tjrs pareil; j'ai le message :"Incompatibilité de type"
Reprends le code d'origine et ajoutes une apostrophe juste avant le guillement qui suit le signe = et une autre entre les deux guillemets qu i suivent ta variable. Avec des espaces pour la lisibilité, cela donne: WHERE Tab1.GS_dorigine = ' " & Me.GS_dorigine & " ' ") C'est mieux ?
Non, tjrs pareil; j'ai le message :"Incompatibilité de type"
eric.zzzz
Ouf ! comme ça, ça marche... WHERE Baf06_4.GS_dorigine =[Formulaires]![Form_IndicGSdorigine]! [GS_dorigine] Le Me.GS_dorigine me créait du numérique dans la requete temporaire...
Ouf ! comme ça, ça marche...
WHERE Baf06_4.GS_dorigine =[Formulaires]![Form_IndicGSdorigine]!
[GS_dorigine]
Le Me.GS_dorigine me créait du numérique dans la requete temporaire...
Ouf ! comme ça, ça marche... WHERE Baf06_4.GS_dorigine =[Formulaires]![Form_IndicGSdorigine]! [GS_dorigine] Le Me.GS_dorigine me créait du numérique dans la requete temporaire...