pfff los de Mocosoft son unos maquinas ... (vaya basura de método,falla y ni siquiera da un error...)
es verdad que falla el método lo certifico, al final lo he solucionado con otro código, lo pego por si alguien lo quiere para algún día:
Sub MySql_VolcadoExcel()
Dim conexion As New ADODB.Connection
Dim miservidor As String
Dim bd As String
Dim user As String
Dim i, f, c As Long
Dim rs As ADODB.Recordset
miservidor = "XXXXXXXXX"
bd = "XXXXXXXXX"
user = "XXXXXXXXXXx"
Set conexion = New ADODB.Connection
'ABRE LA CONEXION
conexion.Open "DRIVER={MySQL ODBC 5.2a Driver};SERVER=" & miservidor & ";DATABASE=" & bd & ";UID=" & user & ";password=XXXXX;OPTION=16427"
Set recsql = New ADODB.Recordset
'EJECUTA LA CONSULTA: evidentemente consulta1 es una variable que ya contiene la consulta en si...
recsql.Open consulta1, conexion
ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Consulta " & NombreConsulta
c = 0
f = 0
' recorre las columnas, añade el nombre del campo al encabezado
For i = 0 To recsql.Fields.Count - 1
Range(Chr(i + 65) & f + 1).Value = recsql.Fields(i).Name
Next
f = f + 1
' recorre todo el RECORDSET hasta el final
Do While Not recsql.EOF
' recorre los campos en el registro actual del RECORDSET para recuperar el dato
For i = 0 To recsql.Fields.Count - 1
' añade el valor a la celda
Range(Chr(c + 65) & (f + 1)).Value = recsql.Fields(c)
c = c + 1
Next
' RESETEA EL INDICE DE LAS COLUMNAS
c = 0
' SUMA UNA FILA
f = f + 1
' SIGUIENTE REGISTRO DEL RECORDSET
recsql.MoveNext
Loop
' Cierra y descarga los objetos
On Error Resume Next
recsql.Close
conexion.Close
Set conexion = Nothing
Set recsql = Nothing
End Sub