Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Attaquer une base de donnée access avec excell

7 réponses
Avatar
Nelson
Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub


Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value

7 réponses

Avatar
FFO
Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!


Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub


Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value


Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/fichiers/jb-ExelAccess.zip

JB

On 1 août, 11:16, FFO wrote:
Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!




Bonjour,

je cherche à travailler une base de donnée access avec excell. J'ut ilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevio us ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec s eek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemp les, si
vous savez où le trouver, ça m'aiderait certainement à mieux comp rendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub

Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de donn ées

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la b ase
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value- Masque r le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
Nelson
salut et merci ffo, c'est nouveau, il me dit que "reference1" n'est pas un
index de cette table.... pourtant c'est le nom de la colonne!

help!

Sinon j'ai essayé avec ce code, ça marche pas plus... Un problème avec ma bdd?

Sub cherche()
Dim code_emb As String

Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

code_emb = "reference1 = MFM0504"

With matable
.FindFirst code_emb 'est-ce bien la bonne synthaxe?
If .NoMatch Then MsgBox "trouve pas"
End With




ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value


End Sub




Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!


Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub


Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value




Avatar
Nelson
Merci JB, c'est assez utile comment fichier, une vraie bible! Faut que je
décortique tout ça et vois les temps de réponse sur un gros fichier...

tu saurais aussi me dire à quoi correspondent les ! et Me?


Bonjour,

http://boisgontierjacques.free.fr/fichiers/jb-ExelAccess.zip

JB

On 1 août, 11:16, FFO wrote:
Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!




Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub

Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -








Avatar
JB
-Sur cet exemple, Me. représente le formulaire. Il n'est pas
obligatoire.
.Il permet de différencier une variable mémoire et un champ de
formulaire
.Lors de l'écriture du code , Me. affcihe la liste des champs du
formulaire.

-Le ! sépare le nom du recordset du nom du champ de la table.

JB

On 1 août, 12:46, Nelson wrote:
Merci JB, c'est assez utile comment fichier, une vraie bible! Faut que je
décortique tout ça et vois les temps de réponse sur un gros fichier ...

tu saurais aussi me dire à quoi correspondent les ! et Me?




Bonjour,

http://boisgontierjacques.free.fr/fichiers/jb-ExelAccess.zip

JB

On 1 août, 11:16, FFO wrote:
Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de donn ées

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!




Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePr evious ou
MoveNext mais je n'arrive pas à cherche une donnée précise av ec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce suje t... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses e xemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub

Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de do nnées

With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value- Ma squer le texte des messages précédents -


- Afficher le texte des messages précédents -- Masquer le texte d es messages précédents -



- Afficher le texte des messages précédents -





Avatar
FFO
Rebonjours Nelson

Le code que je t'ai proposé fonctionne trés bien chez moi

As tu bien vérifié l'exactitude du nom de ton champ directement dans la
table de la base Access ??? (attention aux espaces éventuels en fin de
libellé)
Es tu certain du nom de ta table qui possède ce champ ???

As tu bien coché la référence Microsoft DAO Object Library (version la plus
récente) ???

Tu peux essayer de m'envoyer ta base Access pour que je procède à un essai :

http://www.cijoint.fr/index.php

Donnes moi le lien en retour


salut et merci ffo, c'est nouveau, il me dit que "reference1" n'est pas un
index de cette table.... pourtant c'est le nom de la colonne!

help!

Sinon j'ai essayé avec ce code, ça marche pas plus... Un problème avec ma bdd?

Sub cherche()
Dim code_emb As String

Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

code_emb = "reference1 = MFM0504"

With matable
.FindFirst code_emb 'est-ce bien la bonne synthaxe?
If .NoMatch Then MsgBox "trouve pas"
End With




ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value


End Sub




Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!


Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub


Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value






Avatar
Nelson
Merci FFO, mais la fonction de JB bien que passant par une péthode totalement
différente me donne le résultat que je cherche et quelques fonctionnalités
auquel je n'avais pas pensé...

Pas la peine de s'user les méninges là-dessus. Donc à moins que ça ne
t'intéresses, je m'arrête là sur ce sujet.

Encore merci de ton aide, je vais avoir d'autres questions encore!


Rebonjours Nelson

Le code que je t'ai proposé fonctionne trés bien chez moi

As tu bien vérifié l'exactitude du nom de ton champ directement dans la
table de la base Access ??? (attention aux espaces éventuels en fin de
libellé)
Es tu certain du nom de ta table qui possède ce champ ???

As tu bien coché la référence Microsoft DAO Object Library (version la plus
récente) ???

Tu peux essayer de m'envoyer ta base Access pour que je procède à un essai :

http://www.cijoint.fr/index.php

Donnes moi le lien en retour


salut et merci ffo, c'est nouveau, il me dit que "reference1" n'est pas un
index de cette table.... pourtant c'est le nom de la colonne!

help!

Sinon j'ai essayé avec ce code, ça marche pas plus... Un problème avec ma bdd?

Sub cherche()
Dim code_emb As String

Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

code_emb = "reference1 = MFM0504"

With matable
.FindFirst code_emb 'est-ce bien la bonne synthaxe?
If .NoMatch Then MsgBox "trouve pas"
End With




ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value


End Sub




Salut Nelson

Aprés avoir essayé ton code
La difficulté réside dans le fait que tu l'ai scindé en deux

Si tu regroupes les 2 morceaux ainsi :

Sub cherche()
'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")
On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value
End Sub

Celà fonctionne nettement mieux

Essaie et dis moi !!!!


Bonjour,

je cherche à travailler une base de donnée access avec excell. J'utilise VBA
avec office 2003. J'arrive bien à avoir des données avec MovePrevious ou
MoveNext mais je n'arrive pas à cherche une donnée précise avec seek ou
findfirst. L'aide d'office est pas claire (synthaxe...) sur ce sujet... Je
mets les 2 principales macro que j'utilise. Un coup de main?

De plus l'aide fait appel à un fichier "Northwind.mdb" pour ses exemples, si
vous savez où le trouver, ça m'aiderait certainement à mieux comprendre..

Merci.

Private Sub Workbook_Open()

'Ouverture BDD
Set wrkJet = CreateWorkspace("JetWorkspace", "admin", _
"", dbUseJet)
Set dbsEssai = wrkJet.OpenDatabase("essai.mdb")

Set matable = dbsEssai.OpenRecordset("fiche_dcl")

End Sub


Sub cherche()

On Error Resume Next 'eviter message erreur si début ou fin de données


With matable
.Index = "reference1"
.Seek "=", "MFM0479" 'valeur dans la colonne reference1 de la base
access
If .NoMatch Then MsgBox "trouve pas"
End With

ActiveSheet.Range("B19") = matable.Fields("reference2").Value
ActiveSheet.Range("B20") = matable.Fields("reference3").Value
ActiveSheet.Range("B21") = matable.Fields("reference4").Value
ActiveSheet.Range("D17") = matable.Fields("reference5").Value