Exporter de VB6 ( Acces ) vers Excel

Résolu
Bonjour

Je cherche à exporter les données de ma DGDeclarationCnss vers un tableau Excel nommé xlo, sans rien y écrire.
Et j'ai copié un code ( trouvé sur CoudeS sourceS) ayant relation avec mon idée, mais je n'ai pas le résultat escompte, vu que l'application me renvoie le tableau xlo vide avec un le message ecrit en fin de code.

Merci pour votre aide

Private Sub CdExporter_Click()

Dim I, j, k, l As Integer

On Error GoTo errxcel

Dim xlo As Object

Set xlo = CreateObject("Excel.Application")

DoEvents

xlo.Visible = True
xlo.Workbooks.Add

I = rsProv1.RecordCount
j = DGDeclarationCnss.Columns.Count

For k = 0 To j - 1

xlo.Workbooks(1).Sheets(1).Cells(l + 1, k + 1) = DGDeclarationCnss.Columns(k).Caption

Next k

I = 0
rsProv1.MoveFirst

Do While Not rsProv1.EOF

For k = 0 To j - 1

DGDeclarationCnss.Col = k
DGDeclarationCnss.Row = l
xlo.Workbooks(1).Sheets(1).Cells(l + 2, k + 1) = DGDeclarationCnss.Text

Next k

rsProv1.MoveNext
l = l + 1

Loop

Exit Sub

errxcel:
MsgBox "N'a pas trouvé d'Excel"

End Sub

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,

    Chez moi le classeur Excel est bien cree. Chez vous il l'est ou pas??
    Vu que peut importe l'erreur, vous aurez toujours "N'a pas trouvé d'Excel"
    Question existentielle: vous avez Excel au moins……..???
    1. Re bonjour

      J'ai crée un workBooks nommé DeclarationCnss.xlsx
    2. Rebonjour

      J'ai eu un resultat soi disant positif mais incomplet. Comme j'ai seulement 2 lignes dans ma BD, qui s'affichent sur ma DataGrid, l'application me renvoie la feuille Excel avce la répétition de la Première ligne seulement.

      voilà le Code

      Private Sub CdExporter_Click()

      Dim xlo As Object
      Dim i, j, l, k As Integer

      On Error GoTo errxcel:

      Set xlo = CreateObject("Excel.application")

      i = RS.RecordCount
      RS.MoveFirst

      DoEvents

      xlo.Visible = True
      xlo.Workbooks.Add

      j = DGDeclarationCnss.Columns.Count

      For k = 0 To j - 1

      xlo.Workbooks(1).Sheets(1).Cells(l + 1, k + 1) = DGDeclarationCnss.Columns(k).Caption

      Next k

      i = 0
      RS.MoveFirst

      Do While Not RS.EOF

      For k = 0 To k - 1

      DGDeclarationCnss.Col = k

      xlo.Workbooks(1).Sheets(1).Cells(l + 2, k + 1) = DGDeclarationCnss.Text

      Next

      RS.MoveNext

      l = l + 1

      Loop

      Exit Sub

      errxcel:

      MsgBox "Aucune feuuille Excel n'est trouvée", vbCritical + vbInformation, "Info !"

      End Sub
  2. Re,

    kezako:
    For k = 0 To k - 1
    1. Re bonjour

      Comme j'avais le problème avec les lignes, j'ai ajouté :

      DGDeclarationCnss.Row = i

      et ça marche pour le moment pour 2 lignes. Pour plus je ne peux le conformer qu'après l'avoir testé
      Concernant la feuille d'Excel, je n'ai pas besoin de la créer à priori, car il est crée spontanément.

      Merci pour votre attention

      Private Sub CdExporter_Click()

      Dim xlo As Object
      Dim i, j, l, k As Integer

      On Error GoTo errxcel:

      Set xlo = CreateObject("Excel.application")

      i = RS.RecordCount
      RS.MoveFirst

      DoEvents

      xlo.Visible = True
      xlo.Workbooks.Add

      j = DGDeclarationCnss.Columns.Count

      For k = 0 To j - 1

      xlo.Workbooks(1).Sheets(1).Cells(l + 1, k + 1) = DGDeclarationCnss.Columns(k).Caption

      Next k

      i = 0
      RS.MoveFirst

      Do While Not RS.EOF

      For k = 0 To k - 1

      DGDeclarationCnss.Col = k
      DGDeclarationCnss.Row = i

      xlo.Workbooks(1).Sheets(1).Cells(i + 2, k + 1) = DGDeclarationCnss.Text

      Next

      RS.MoveNext

      i = i + 1

      Loop

      Exit Sub

      errxcel:

      MsgBox "Aucune feuuille Excel n'est trouvée", vbCritical + vbInformation, "Info !"

      End Sub