Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ECRIRE DES DONNÉES DANS EXCEL


Information sur la source

Description

Ecrire les données d'un recordset dans une fiche excel, indépendament de la version d'excel.
 

Source

  • Dim sheet As Object
  • Dim exldoc As Object
  • Dim exlapp As Object
  • Dim i As Integer
  • Dim j As Integer
  • Set exlapp = CreateObject("excel.application")
  • Set exldoc = exlapp.workbooks.Open("p:\logement\doc\test.xls")
  • Set sheet = exlapp.ActiveWorkbook.ActiveSheet
  • i = 0
  • For i = 0 To votre_rst.Fields.Count - 1
  • sheet.Cells(1, i + 1).Value = votre_rst.Fields(i).Name
  • Next i
  • i = 0
  • j = 2
  • Do While votre_rst.EOF = False
  • For i = 0 To votre_rst.Fields.Count - 1
  • If IsDate(votre_rst.Fields(i)) Then
  • sheet.Cells(j, i + 1).NumberFormat = "dd/mm/yyyy"
  • End If
  • If VarType(votre_rst.Fields(i)) = 5 Then
  • sheet.Cells(j, i + 1).NumberFormat = "#########0.00"
  • End If
  • sheet.Cells(j, i + 1).Value = votre_rst.Fields(i)
  • Next i
  • j = j + 1
  • votre_rst.MoveNext
  • Loop
  • exldoc.Close
  • exlapp.quit
  • Set exlapp = Nothing
  • Set exldoc = Nothing
  • End Function
Dim sheet As Object
Dim exldoc As Object
Dim exlapp As Object
Dim i As Integer
Dim j As Integer
    
    Set exlapp = CreateObject("excel.application")
    Set exldoc = exlapp.workbooks.Open("p:\logement\doc\test.xls")
    Set sheet = exlapp.ActiveWorkbook.ActiveSheet
    i = 0
    For i = 0 To votre_rst.Fields.Count - 1
        sheet.Cells(1, i + 1).Value = votre_rst.Fields(i).Name
    Next i
    
    i = 0
    j = 2
    
    Do While votre_rst.EOF = False
    
        For i = 0 To votre_rst.Fields.Count - 1
        
            If IsDate(votre_rst.Fields(i)) Then
                sheet.Cells(j, i + 1).NumberFormat = "dd/mm/yyyy"
            End If
            
            If VarType(votre_rst.Fields(i)) = 5 Then
                sheet.Cells(j, i + 1).NumberFormat = "#########0.00"
            End If
            
            sheet.Cells(j, i + 1).Value = votre_rst.Fields(i)
                
        Next i
    
        j = j + 1
        
        votre_rst.MoveNext
    Loop
    
    exldoc.Close
    exlapp.quit
    
    Set exlapp = Nothing
    Set exldoc = Nothing
End Function

Commentaires et avis

signaler à un administrateur
Commentaire de riderbmx le 28/04/2004 15:04:33

J'utilise le meme type de code, mais au moment de fermer l'appli, une boite de dialogue s'ouvre et demande si je veut enregsitrer les changements effectué au fichier. Comment faire pour enregistrer les changements sans avoir la boite de dialogue?

signaler à un administrateur
Commentaire de vienbv le 26/08/2006 06:07:43

Merci beaucoup, cela m'aide à débloquer mon problème

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,047 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.