Excel vba masquer LA feuille utilisée (SVP)

k.deg -  
 k.deg -
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

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. k.deg
       
      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