OVH Cloud OVH Cloud

Fonction de UserForm...

4 réponses
Avatar
Yvan
Bonjour,

J'utilise un Userform dont un bouton exécute la ligne suivante. Si j'ouvre
le UF sur la feuille "Journal Client" cela fonctionne parfaitement, alors que
si je suis sur une autre feuille, cela génère une erreur !!!

Où est l'astuce ???

Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, Sheets("Journal
Client").Range(Cells(e, 2), Cells(5 + a, 11)), 1, False)

--
Merci pour vos réponses.

4 réponses

Avatar
MichDenis
|Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, Sheets("Journal
| Client").Range(Cells(e, 2), Cells(5 + a, 11)), 1, False)

Quand tu ne spécifies pas le nom de la feuille à laquelle la plage fait référence,
excel suppose que la plage (range) appartient à la feuille active du classeur actif.

Observe ceci : Cells(e, 2) et Cells(5 + a, 11)) -> à quelle feuille la cellule appartient ?
oui oui je sais, il y a un point devant .Range( ) mais ce n'est pas suffisant

Il y a toujours la syntaxe comme suit :

With Sheets("Journal Client")
Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, .Range(.Cells(e, 2), .Cells(5 + A, 11)),
1, False)
End with

Et pour Range("A1") -> à quelle feuille il appartient ?





"Yvan" a écrit dans le message de news:

Bonjour,

J'utilise un Userform dont un bouton exécute la ligne suivante. Si j'ouvre
le UF sur la feuille "Journal Client" cela fonctionne parfaitement, alors que
si je suis sur une autre feuille, cela génère une erreur !!!

Où est l'astuce ???

Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, Sheets("Journal
Client").Range(Cells(e, 2), Cells(5 + a, 11)), 1, False)

--
Merci pour vos réponses.
Avatar
Yvan
Une fois encore : génial !!!

J'ai quand même du mal à comprendre pourquoi on est obligé de remettre un ".
" devant cells() alors qu'il y en a déjà un devant range.

Il faut donc non seulement dire que la plage appartient à la feuille
spécifiée, mais que les cellules en font également partie ???

--
Merci pour vos réponses.



|Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, Sheets("Journal
| Client").Range(Cells(e, 2), Cells(5 + a, 11)), 1, False)

Quand tu ne spécifies pas le nom de la feuille à laquelle la plage fait référence,
excel suppose que la plage (range) appartient à la feuille active du classeur actif.

Observe ceci : Cells(e, 2) et Cells(5 + a, 11)) -> à quelle feuille la cellule appartient ?
oui oui je sais, il y a un point devant .Range( ) mais ce n'est pas suffisant

Il y a toujours la syntaxe comme suit :

With Sheets("Journal Client")
Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, .Range(.Cells(e, 2), .Cells(5 + A, 11)),
1, False)
End with

Et pour Range("A1") -> à quelle feuille il appartient ?





"Yvan" a écrit dans le message de news:

Bonjour,

J'utilise un Userform dont un bouton exécute la ligne suivante. Si j'ouvre
le UF sur la feuille "Journal Client" cela fonctionne parfaitement, alors que
si je suis sur une autre feuille, cela génère une erreur !!!

Où est l'astuce ???

Range("A1") = WorksheetFunction.VLookup(TextBox1.Value, Sheets("Journal
Client").Range(Cells(e, 2), Cells(5 + a, 11)), 1, False)

--
Merci pour vos réponses.





Avatar
MichDenis
| Il faut donc non seulement dire que la plage appartient à la feuille
| spécifiée, mais que les cellules en font également partie ???

à chaque fois que tu utilises Cells ou Range ...à mois que
tu fasses explicitement à une feulle donnée, donc totalement
référencé comme dans ton exemple, la "Cell" ou "Range"
est cencé appartenir à la feuille active du classeur actif.

Remarque que la syntaxe With ... End With est la meilleure
façon de saisir du code... car tous les objets sont totalement
référencés pas seulement les plages de cellules !
Avatar
Yvan
Ok patron. Encore merci pour ton aide précieuse.

A plus.
--
Merci pour vos réponses.



| Il faut donc non seulement dire que la plage appartient à la feuille
| spécifiée, mais que les cellules en font également partie ???

à chaque fois que tu utilises Cells ou Range ...à mois que
tu fasses explicitement à une feulle donnée, donc totalement
référencé comme dans ton exemple, la "Cell" ou "Range"
est cencé appartenir à la feuille active du classeur actif.

Remarque que la syntaxe With ... End With est la meilleure
façon de saisir du code... car tous les objets sont totalement
référencés pas seulement les plages de cellules !