Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2010, 12h11   #1
Membre habitué
 
Inscription : juin 2007
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 211
Points : 104
Points : 104
Par défaut Passer un record en paramètre

Bonjour,

Je n'arrive pas dans mes macros à passer en paramètre des types plus évolués genre record, workbook, worksheet, etc... Même en rajoutant des ByVal ou ByRef, je me prends toujours une erreur de typage. Un exemple:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub HeaderFormat(ByRef rs As Recordset, ByRef xlSheet As Worksheet)
 
    For J = 0 To rs.Fields.Count - 1
        xlSheet.Cells(1, J + 1) = rs.Fields(J).Name
        ' Nous appliquons des enrichissements de format aux cellules
        With xlSheet.Cells(1, J + 1)
            .Interior.ColorIndex = 15
            .Interior.Pattern = xlSolid
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).Weight = xlThin
            .Borders(xlEdgeBottom).ColorIndex = xlAutomatic
            .HorizontalAlignment = xlCenter
        End With
    Next J
 
End Sub
DuyBinh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 15h35   #2
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Bonjour,

Comment appelles-tu la fonction ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h04   #3
Membre habitué
 
Inscription : juin 2007
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 211
Points : 104
Points : 104
Code :
Call HeaderFormat(rs, xlSheet)
j'ai aussi tenté
Code :
Call HeaderFormat(Byref rs,Byref xlSheet)
De même pour Byval.
DuyBinh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h14   #4
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Code :
HeaderFormat rs, xlSheet
rs est bien un Recordset (il faudrait préciser DAO ou ADODB) ?
xlSheet est bien un Worksheet ?
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 16h46   #5
Membre habitué
 
Inscription : juin 2007
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 211
Points : 104
Points : 104
C'est exact rs = recordset et xlSheet une worksheet. Mais en faisant l'appel sans le call, je me prends toujours l'erreur 13: incompatibilité de type...
DuyBinh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 17h06   #6
Membre Expert
 
Inscription : janvier 2006
Messages : 1 111
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 1 111
Points : 1 093
Points : 1 093
Si dans la focntion/sub appelante, tu as bien
Code :
1
2
dim rs as recordset
dim xlSheet as worksheet
je ne vois pas d'où peut venir le problème.
__________________
[Access] Les bases du débogage => ici
Kloun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2010, 17h40   #7
Membre habitué
 
Inscription : juin 2007
Messages : 211
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 211
Points : 104
Points : 104
Oui variables déclarés et pas null. Si je mets uniquement un string ou un integer, ça passe si je mets un type plus évolué ça ne passe plus.
DuyBinh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web