[Catégorie modifiée VB6 --> VBA] Remplir une feuil Excel a partir d'une BD

Résolu
devilmks Messages postés 7 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 21 août 2010 - 16 août 2010 à 13:38
devilmks Messages postés 7 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 21 août 2010 - 16 août 2010 à 16:01
Bonjour !
je suis entrain de faire une ptite application , et j'ai une bouton qui permet d'afficher un classeur excel ... la feuil(excel) sera rempli a partir de la base de donnée . qu'on je clique sur la bouton la premiére fois aprés l'execution du projet ... la feuil exel se remli normalement ... jusqu'ici tt va bien ! mais le blém c lorsque je ferme le classeur et je clique une deuxiéme fois sur la bouton ... je recois cette erreur :
___________________________________________________
Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué
___________________________________________________

é voici mon code :

Dim xl As Excel.Application
Dim mafeuil As Excel.Worksheet
Set xl = CreateObject("excel.application")
'********Ouvrir le classeur excel **********'
xl.Workbooks.Open App.Path & "\Imprimer.xls"
'********Déclarer vers la feuil sur laquel on va travailler ******'
Set mafeuil = xl.Worksheets("Feuil1")
Range("C10").Value = Rsimp.Fields(0)
Range("C11").Value = Rsimp.Fields(1)
Range("C12").Value = Rsimp.Fields(2)
Range("C13").Value = Rsimp.Fields(3)
Range("C14").Value = Rsimp.Fields(4)
Range("C15").Value = Rsimp.Fields(5)
Range("C16").Value = Rsimp.Fields(6)

xl.Visible = True

Svp Aidez moi ... Vraiment je suis bloqué
Merci d'avance

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2010 à 15:36
Salut
Oui, il suffit de lire le message d'erreur pour le comprendre :
"La méthode 'Range'"
Actuellement, dans ton code, les Range ne sont associées à aucune feuille.
Tu déclares bien mafeuil, mais tu ne t'en sers pas !
--> mafeuil.Range("C10").Value = Rsimp.Fields(0)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
16 août 2010 à 15:42
Tiens, juste pour le fun : méthode d'insertion :
    Set mafeuil = xl.Worksheets("Feuil1")
    With mafeuil
        For r = 0 To (rsimp.Fields.Count - 1)
            .Range("C10").Offset(r, 0).Value = Rsimp.Fields(r)
        Next r
    End With

Voir aussi la fonction Excel toute faite :
    Set mafeuil = xl.Worksheets("Feuil1")
    mafeuil.Range("C10").CopyFromRecordSet Rsimp
0
devilmks Messages postés 7 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 21 août 2010
16 août 2010 à 16:01
Merci jack !! enfin le blém est resolu grace a toi !!
Mercii infiniment
0
Rejoignez-nous