Erreur de compilation code VBA Access

Signaler
Messages postés
15
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
1 avril 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour,
J'ai une erreur de compilation que je n'arrive pas à résoudre, étant presque débutant:

c'est pour la ligne de code suivante:

rs.Fields("Prenom") = ws.Range("A", deb)

D'où vient le problème?

C'est pour transférer le contenu d'une cellule d'une conlonne d'une feuille excel dans un champ d'une table Access. La fonction VBA est créée VIA Access.

Je vous remercie d'avance

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Salut
Parce que la syntaxe de Range n'est pas correcte : Voir l'aide
   Range ("A1:B12")   ou   Range ("A1", "B12")
Si tu veux spécifier une colonne entière, c'est   
   Range ("A:B")   uniquement
Que représente ta variable 'deb' ?
Si c'est une colonne, essaye
   Range ("A:" & CStr(Deb))

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Catégorie de la question modifiée .NET --> VBA
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
Au fait :
   rs.Fields("Prenom").Value
   Range("A1").Value
seraient plus propres

D'autre part, dans un champ, tu pourras mettre du texte ou un chiffre, selon sont type dans la DB, mais en aucun cas tu ne pourras mettre un ensemble de cellules.
Si tu dois donné une référence à une cellule, utilise Cells et pas Range
Messages postés
15
Date d'inscription
lundi 8 juin 2009
Statut
Membre
Dernière intervention
1 avril 2011

Merci à tout le monde pour vos réponses.
Mais le problème n'est toujours pas résolu.

A l'attention de jack :

J'ai mis les trois lignes de codes suivantes (juste pour tester) :

rs.AddNew
rs.Fields("Prenom").Value = Range("A1").Value
rs.Update

Quand je compile il m'affiche l'erreur suivante :
Erreur d'exécution '1004'
La méthode 'Range' de l'objet '_Global' a échoué

Quelle est l'origine du problème?

Les autres pourront répondre aussi s'ils le souhaitent
Je vous remercie d'avance.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
75
ws
.Range
Range doit toujours être associé à un objet existant