Excel vba masquer LA feuille utilisée (SVP)

Fermé
k.deg - 25 oct. 2011 à 12:27
 k.deg - 25 oct. 2011 à 14:21
Bonjour,
Alors, j'ai créé un Userform qui rentre ou extrait des valeurs dans leurs cellules associées.
Ce que je voudrais, c'est de pouvoir les gérer, sans pour autant voir le feuille Excel en arrière plan...

worksheets("nom")
ou
sheets("nom").select

Ces deux formules désigne la feuille, mais la fait aussi apparaitre en arrière plan...

Merci d'avance

A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 25/10/2011 à 14:01
bonjour

ton sheets(nom).select est pas terrible (ou même erreur avec .activate)

essaies les blocs, par ex:

with sheets(nom)    
   .range("A1")=tadonnée    
end with


tu ne fais pas apparaitre la feuille, ton code est + lisible et tu gagnes en rapidité d'execution
n'oublie pas les points devant la propriété ou la méthode employée

Mais je me demande si tu lis les réponses que l'on te fait
https://forums.commentcamarche.net/forum/affich-23362715-excel-vb-remplir-feuille-via-userform#p23466942

a savoir: peut-être daigneras tu lire cette fois et peut-être retenir

la notation with sheets(N)....end with crée un "bloc " on indique au processeur que l'on travaille dans ce bloc avec les cellules (cells ou range) précédées d'un point: ne pas oublier ce point car sinon XL travaille sur la feuille active (bug classique que je sais faire!)  
l'avantage est la sécurité de ton processus et évite les sheets.activate et sheets.select qui sont très lents et dénote une mauvaise connaissance de VBA  
Tu peux utiliser with...end with avec d'autres objets (range, checkbox....)


j'ai nettement l'impression que..... :-(((

Michel
0
Bonjour, merci michel_m,

Tout d'abord, bien sur que je lis vos réponses, sinon, mes posts ne me servirais à rien...
De plus, j'ai beau essayer cette méthode (je dois très mal m'y prendre) mais ça ne fonctionne pas..
Pourtant, je met :
with sheets(nom) juste après le désignation des variables.
et je met :
End with juste avant End Sub

Je met aussi tous les points avant les "cells" ou les "range", mais un message d'erreur s'affiche et me dit : "L'indice n'appartient pas à la selection"

J'avais essayer ta méthode, mais je n'arriver pas à la faire marcher...
Sinon, pour l'ajout dans la feuille, avec la variable "ligvid", c'est génial, et ça fonctionne bien. :)

Merci encore
0