XL 2013 [RÉSOLU] Erreur range(mon tableau) dans VBA VLookup

pg111

XLDnaute Nouveau
Bonjour à tous.

C'est ma première intervention sur ce forum.

Voilà ce qui m'amène:

J’ai deux feuilles dans le même classeur: une feuille Activité trad. (je suis traducteur) et une feuille Clients. La première feuille fait la liste au jour le jour des jobs que l’on me confie. La seconde est la liste de mes clients avec les tarifs que je leur applique.

Dans la première, lorsque je crée la ligne d’un nouveau job, je dois rentrer le montant à facturer du job. Je facture dans deux devises: dollar et euro. Je souhaiterais que le format monétaire de la cellule soit automatiquement appliqué en fonction du client qui m’a commandé le job.

Ce client est indiqué dans la méme ligne dans une cellule située 7 colonnes avant.
Par ailleurs, ce même client apparaît dans ma seconde feuille et une cellule indique la devise à lui appliquer.

J’ai donc écrit la procédure VBA suivante:

devise = Application.WorksheetFunction.VLookup(ActiveCell.Offset(0, -7), Range("Clients!$A$1:$C$29"), 2)
If devise = "€" Then
ActiveCell.NumberFormat = "#,##0.00_\€;#,##0.00_\€"
End If

L’exécution de cette procédure donne l’erreur suivante:

Erreur d’exécution 1004
La méthode ’Range’ de l’objet ’_Worksheet’ a échoué

et l’infobulle de la ligne en erreur indique que l’erreur porte sur l’argument Range("Clients!$A$1:$C$29".

Je n’arrive pas à comprendre où est l’erreur.

Toute aide sera la bienvenue. Merci par avance.

Cordialement.
 
Dernière modification par un modérateur:

Paf

XLDnaute Barbatruc
Re : Erreur range(mon tableau) dans VBA VLookup

Bonjour et bienvenue sur XLD,


a priori c'est WorksheetFunction.VLookup ou Application.VLookup
Mais un classeur contenant des données représentatives non confidentielles permettrait de mener des tests si ce n'était pas ça.

A+
 

pg111

XLDnaute Nouveau
Re : Erreur range(mon tableau) dans VBA VLookup

Bonjour et bienvenue sur XLD,


a priori c'est WorksheetFunction.VLookup ou Application.VLookup
Mais un classeur contenant des données représentatives non confidentielles permettrait de mener des tests si ce n'était pas ça.

A+

Bonjour. Merci pour la réponse. J'ai essayé avec les deux syntaxes, mais j'ai toujours le même message d'erreur indiquant que l’erreur porte sur l’argument Range("Clients!$A$1:$C$29").

Je prépare une version anodine du fichier Excel et je l'uploaderai dès qu'elle sera prête, mais j'ai d'autres tâches plus prioritaires, donc le fichier ne sera pas prêt immédiatement.

Cordialement.

PG
 

pg111

XLDnaute Nouveau
Re : Erreur range(mon tableau) dans VBA VLookup

Bonjour à tous.

Voici donc une version de mon fichier, expurgée de toutes données personnelles.

Merci par avance à qui m'aidera à résoudre mon problème.

Cordialement.
 

Pièces jointes

  • Test Activité pg pro.zip
    185 KB · Affichages: 21

Dranreb

XLDnaute Barbatruc
Re : Erreur range(mon tableau) dans VBA VLookup

Bonjour.

Il faudrait toujours préciser de quel objet vous voulez employer la méthode Range.
Essayez Application.Range("Clients!$A$1:$C$29")
ou mieux Worksheets("Clients").Range("$A$1:$C$29")
Parce que là, pour peu que ce soit écrit dans un module d'une autre feuille que Clients, il essaye de définir une plage cette feuille, assumée vu que ce n'est pas précisé, laquelle ne peut contenir des cellules de la feuille Clients, forcément.
 

pg111

XLDnaute Nouveau
Re : Erreur range(mon tableau) dans VBA VLookup

Bonjour.

Il faudrait toujours préciser de quel objet vous voulez employer la méthode Range.
Essayez Application.Range("Clients!$A$1:$C$29")
ou mieux Worksheets("Clients").Range("$A$1:$C$29")
Parce que là, pour peu que ce soit écrit dans un module d'une autre feuille que Clients, il essaye de définir une plage cette feuille, assumée vu que ce n'est pas précisé, laquelle ne peut contenir des cellules de la feuille Clients, forcément.

Merci. Mon problème est effectivement et efficacement résolu.

Cordialement.

PG
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 310
Membres
102 859
dernier inscrit
Diallokass