Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de destination de requête (Suite)

6 réponses
Avatar
Serge
bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre
un pb de destination de requête. Maintenant sur ces modifs j'ai une nouvelle
erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera obtenue.

Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " & ActiveSheet.Name -->
je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge

6 réponses

Avatar
michdenis
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom de ta requête et feuille de calcul au besoin !

'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne y-a-il un problème ?



Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news: cmt19u$111p$

bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre
un pb de destination de requête. Maintenant sur ces modifs j'ai une nouvelle
erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera obtenue.

Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " & ActiveSheet.Name -->
je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge
Avatar
Serge
Bonjour et merci de ton aide,

Avec les modifs que tu m'as fait faire j'ai une erreur sur la ligne :

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

avec le message : erreur d'execution 1004

erreur definie par l'application ou par l'objet

@+

"michdenis" a écrit dans le message
news:...

Bonjour Serge,



Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom de
ta requête et feuille de calcul au besoin !




'------------------------

sqlBestCustomer51 = "SELECT ......."

connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"



With Worksheets("Client")

.Activate

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

With .QueryTables.Add(Connection:=connstring1, _

Destination:=Worksheets("Client").Range("A1") _

, Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing

'------------------------



Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne y-a-il
un problème ?








Salutations!











"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$




bonjour,



Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre

un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle


erreur :



Erreur 1004 :

Microsoft Excel ne peut pas insérer de colonnes parce que la dernière

colonne (colonne IV) contient des données. Aucune données ne sera obtenue.



Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne

feuille et que je n'y ai aucunes données.



Mon code :

Private Sub BestClient51_Click()

Dim qt As QueryTable

sql51 = "SELECT ..."



connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"





With Worksheets("Client")

.Activate

.Range("A1", "Z400").Clear

MsgBox "The name of the active sheet is " & ActiveSheet.Name -->

je suis bien sur client

With QueryTables.Add(Connection:=connstring1, _

Destination:=Range("A1"), Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing



End Sub



Meric de votre aide

Serge






"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom de
ta requête et feuille de calcul au besoin !


'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne y-a-il
un problème ?




Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$


bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre
un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle

erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera obtenue.

Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " &
veSheet.Name -->

je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge





Avatar
michdenis
Bonjour Serge,


ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

A ) range("A1") représente une cellule appartenant à la plage de cellules contenant le résultat de ta requête :
QueryTable

B ) Cette ligne de code supprime le NOM (insertion / nom / définir) de la plage.

C ) L'erreur 1004 est générée si aucun nom existe ... comme dans mon message d'hier, tu n'as qu'à ajouter la ligne de
code :

On error Resume Next en début de procédure ....


Salutations!


"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news: cmt5q2$12t7$
Bonjour et merci de ton aide,

Avec les modifs que tu m'as fait faire j'ai une erreur sur la ligne :

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

avec le message : erreur d'execution 1004

erreur definie par l'application ou par l'objet

@+

"michdenis" a écrit dans le message
news:...

Bonjour Serge,



Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom de
ta requête et feuille de calcul au besoin !




'------------------------

sqlBestCustomer51 = "SELECT ......."

connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"



With Worksheets("Client")

.Activate

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

With .QueryTables.Add(Connection:=connstring1, _

Destination:=Worksheets("Client").Range("A1") _

, Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing

'------------------------



Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne y-a-il
un problème ?








Salutations!











"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$




bonjour,



Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre

un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle


erreur :



Erreur 1004 :

Microsoft Excel ne peut pas insérer de colonnes parce que la dernière

colonne (colonne IV) contient des données. Aucune données ne sera obtenue.



Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne

feuille et que je n'y ai aucunes données.



Mon code :

Private Sub BestClient51_Click()

Dim qt As QueryTable

sql51 = "SELECT ..."



connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"





With Worksheets("Client")

.Activate

.Range("A1", "Z400").Clear

MsgBox "The name of the active sheet is " & ActiveSheet.Name -->

je suis bien sur client

With QueryTables.Add(Connection:=connstring1, _

Destination:=Range("A1"), Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing



End Sub



Meric de votre aide

Serge






"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom de
ta requête et feuille de calcul au besoin !


'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne y-a-il
un problème ?




Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$


bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour résoudre
un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle

erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera obtenue.

Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " &
veSheet.Name -->

je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge





Avatar
Serge
Salut,

Ma zone n'a pas de Nom, suis obligé de la nommer ?

Slt

"michdenis" a écrit dans le message de
news:

Bonjour Serge,


ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

A ) range("A1") représente une cellule appartenant à la plage de cellules
contenant le résultat de ta requête :

QueryTable

B ) Cette ligne de code supprime le NOM (insertion / nom / définir) de la
plage.


C ) L'erreur 1004 est générée si aucun nom existe ... comme dans mon
message d'hier, tu n'as qu'à ajouter la ligne de

code :

On error Resume Next en début de procédure ....


Salutations!


"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt5q2$12t7$

Bonjour et merci de ton aide,

Avec les modifs que tu m'as fait faire j'ai une erreur sur la ligne :

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

avec le message : erreur d'execution 1004

erreur definie par l'application ou par l'objet

@+

"michdenis" a écrit dans le message
news:...

Bonjour Serge,



Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !



'------------------------

sqlBestCustomer51 = "SELECT ......."

connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"



With Worksheets("Client")

.Activate

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

With .QueryTables.Add(Connection:=connstring1, _

Destination:=Worksheets("Client").Range("A1") _

, Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing

'------------------------



Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?







Salutations!











"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$




bonjour,



Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre



un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle


erreur :



Erreur 1004 :

Microsoft Excel ne peut pas insérer de colonnes parce que la dernière

colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.





Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne

feuille et que je n'y ai aucunes données.



Mon code :

Private Sub BestClient51_Click()

Dim qt As QueryTable

sql51 = "SELECT ..."



connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"





With Worksheets("Client")

.Activate

.Range("A1", "Z400").Clear

MsgBox "The name of the active sheet is " & ActiveSheet.Name -->

je suis bien sur client

With QueryTables.Add(Connection:=connstring1, _

Destination:=Range("A1"), Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing



End Sub



Meric de votre aide

Serge






"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !

'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?



Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$


bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre


un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle

erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.



Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " &
veSheet.Name -->

je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge










Avatar
michdenis
Tu peux te contenter seulement d'inscrire en début de procédure

On error resume next


La zone "Nom" est créé au moment de l'exécution du QueryTable... et à chaque exécution du code (je ne parle pas de
rafraichissement des données), il crée un nouveau nom. et il n'écrase pas nécessairement les données....

A ) détruit la plage nommée
B ) tu effaces les résultats du précédent QueryTable


Salutations!



"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news: cmtag7$154c$
Salut,

Ma zone n'a pas de Nom, suis obligé de la nommer ?

Slt

"michdenis" a écrit dans le message de
news:

Bonjour Serge,


ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

A ) range("A1") représente une cellule appartenant à la plage de cellules
contenant le résultat de ta requête :

QueryTable

B ) Cette ligne de code supprime le NOM (insertion / nom / définir) de la
plage.


C ) L'erreur 1004 est générée si aucun nom existe ... comme dans mon
message d'hier, tu n'as qu'à ajouter la ligne de

code :

On error Resume Next en début de procédure ....


Salutations!


"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt5q2$12t7$

Bonjour et merci de ton aide,

Avec les modifs que tu m'as fait faire j'ai une erreur sur la ligne :

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

avec le message : erreur d'execution 1004

erreur definie par l'application ou par l'objet

@+

"michdenis" a écrit dans le message
news:...

Bonjour Serge,



Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !



'------------------------

sqlBestCustomer51 = "SELECT ......."

connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"



With Worksheets("Client")

.Activate

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

With .QueryTables.Add(Connection:=connstring1, _

Destination:=Worksheets("Client").Range("A1") _

, Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing

'------------------------



Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?







Salutations!











"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$




bonjour,



Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre



un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle


erreur :



Erreur 1004 :

Microsoft Excel ne peut pas insérer de colonnes parce que la dernière

colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.





Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne

feuille et que je n'y ai aucunes données.



Mon code :

Private Sub BestClient51_Click()

Dim qt As QueryTable

sql51 = "SELECT ..."



connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"





With Worksheets("Client")

.Activate

.Range("A1", "Z400").Clear

MsgBox "The name of the active sheet is " & ActiveSheet.Name -->

je suis bien sur client

With QueryTables.Add(Connection:=connstring1, _

Destination:=Range("A1"), Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing



End Sub



Meric de votre aide

Serge






"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !

'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?



Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt19u$111p$


bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre


un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle

erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.



Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " &
veSheet.Name -->

je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge










Avatar
Serge
Re ....

1. J'ai mis On error resume next , rien ne se passe il doit sortir.

2. j'ain enlevé la ligne
'ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
qui n'efface mes anciennes données et là j'ai à nouveau mon ancien message :
La plage de destination n'est pas la même feuille de calcul que celle dans
laquelle la table de requete est créée.

Mon code pour rappel :
Private Sub BestClient51_Click()
Dim qt As QueryTable
'On Error Resume Next
sqlBestCustomer51 = "SELECT ..... "


connstring1 = _
"ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
'ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete -->
en Rem

.Range("A1", "Z400").Clear
'MsgBox "The name of the active sheet is " & ActiveSheet.Name
With QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1"),
Sql:=sqlBestCustomer51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

@+

"michdenis" a écrit dans le message de
news:
Tu peux te contenter seulement d'inscrire en début de procédure

On error resume next


La zone "Nom" est créé au moment de l'exécution du QueryTable... et à
chaque exécution du code (je ne parle pas de

rafraichissement des données), il crée un nouveau nom. et il n'écrase pas
nécessairement les données....


A ) détruit la plage nommée
B ) tu effaces les résultats du précédent QueryTable


Salutations!



"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmtag7$154c$

Salut,

Ma zone n'a pas de Nom, suis obligé de la nommer ?

Slt

"michdenis" a écrit dans le message de
news:

Bonjour Serge,


ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

A ) range("A1") représente une cellule appartenant à la plage de
cellules


contenant le résultat de ta requête :
QueryTable

B ) Cette ligne de code supprime le NOM (insertion / nom / définir) de
la


plage.

C ) L'erreur 1004 est générée si aucun nom existe ... comme dans mon
message d'hier, tu n'as qu'à ajouter la ligne de

code :

On error Resume Next en début de procédure ....


Salutations!


"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de news:
cmt5q2$12t7$

Bonjour et merci de ton aide,

Avec les modifs que tu m'as fait faire j'ai une erreur sur la ligne :

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

avec le message : erreur d'execution 1004

erreur definie par l'application ou par l'objet

@+

"michdenis" a écrit dans le message
news:...

Bonjour Serge,



Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !



'------------------------

sqlBestCustomer51 = "SELECT ......."

connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"



With Worksheets("Client")

.Activate

ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete

With .QueryTables.Add(Connection:=connstring1, _

Destination:=Worksheets("Client").Range("A1") _

, Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing

'------------------------



Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?







Salutations!











"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de
news:



cmt19u$111p$



bonjour,



Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre



un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle


erreur :



Erreur 1004 :

Microsoft Excel ne peut pas insérer de colonnes parce que la dernière

colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.





Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne

feuille et que je n'y ai aucunes données.



Mon code :

Private Sub BestClient51_Click()

Dim qt As QueryTable

sql51 = "SELECT ..."



connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"





With Worksheets("Client")

.Activate

.Range("A1", "Z400").Clear

MsgBox "The name of the active sheet is " & ActiveSheet.Name -->

je suis bien sur client

With QueryTables.Add(Connection:=connstring1, _

Destination:=Range("A1"), Sql:=sql51)

.Refresh

End With

End With

Set connstring1 = Nothing



End Sub



Meric de votre aide

Serge






"michdenis" a écrit dans le message de
news:
Bonjour Serge,

Ce que je te suggérais ressemblait à ceci : Prend soin d'adapte le nom
de


ta requête et feuille de calcul au besoin !

'------------------------
sqlBestCustomer51 = "SELECT ......."
connstring1 = "ODBC;DSN=odbc_test;UID=toto;PWD=toto;Database=Vente"

With Worksheets("Client")
.Activate
ThisWorkbook.Names(.Range("A1").CurrentRegion.Name.Name).Delete
With .QueryTables.Add(Connection:=connstring1, _
Destination:=Worksheets("Client").Range("A1") _
, Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing
'------------------------

Ceci ne fonctionne pas ? Si tu exécutes pas à pas, Sur quelle ligne
y-a-il


un problème ?



Salutations!





"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message de
news:



cmt19u$111p$

bonjour,

Avec l'aide de michdenis dans ce forum j'ai modifié mon code pour
résoudre


un pb de destination de requête. Maintenant sur ces modifs j'ai une
nouvelle

erreur :

Erreur 1004 :
Microsoft Excel ne peut pas insérer de colonnes parce que la dernière
colonne (colonne IV) contient des données. Aucune données ne sera
obtenue.



Là où je ne comprends plus rien, c'est que je pointe bien sur la bonne
feuille et que je n'y ai aucunes données.

Mon code :
Private Sub BestClient51_Click()
Dim qt As QueryTable
sql51 = "SELECT ..."

connstring1 = "ODBC;DSN=odbc1;UID=xx;PWD=yy;Database=Vente"


With Worksheets("Client")
.Activate
.Range("A1", "Z400").Clear
MsgBox "The name of the active sheet is " &
veSheet.Name -->

je suis bien sur client
With QueryTables.Add(Connection:=connstring1, _
Destination:=Range("A1"), Sql:=sql51)
.Refresh
End With
End With
Set connstring1 = Nothing

End Sub

Meric de votre aide
Serge