Lire une cellule excel avec virtual basic

thierry78 -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour,

J’ai une macro qui à besoin de lire une cellule pour s'exécuter, mais j'aimerais protéger cette cellule avec la protection de feuille Excel qui empêche du coup l'exécution de la macro.
Est ce qu'il y a un autre moyen que la fonction "range" qui permettrai de lire a cellule avec la protection.

merci d'avance
thierry
Configuration: Windows XP Internet Explorer 6.0

5 réponses

  1. melanie1324
     
    Bonjour,

    en introduisant une variable :

    sub lirecellule

    dim valeurcellule as string

    valeurcellule = range("A1")
    range("C2") = valeur cellule

    end sub

    dans le code que j'ai mis ma variable valeur cellule est égale à la valeur qui est dans A1 et je mets cette valeur dans C2
    0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Voilà un exemple pour écrire dans une cellule d'une feuille protégée.

    Dim ws As Worksheet
    
    Set ws = ThisWorkbook.Worksheets(1)
    
    ws.Unprotect ("monPassword")
    
    ws.Range("B3").Value = "coucou"
    
    ws.Protect ("monPassword")


    A toi de voir si ça te convient et à l'adapter.

    ;o)
    0
  3. thierry78
     
    re bonjours,

    désolé

    je me suis fait feinté...

    j'ai esseillé de faire comme tu m'a dit polux mais quesque j'ai mal fait?

    Dim compteur As Worksheet

    Set compteur = ThisWorkbook.Worksheets(1)

    compteur.Unprotect ("etn")

    compteur = Sheets("planning ETN utilités").ActiveSheet.Range("D2").Value

    compteur.Protect ("etn")
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Polux31 Messages postés 7219 Statut Membre 1 204
     
    re,

    cette ligne ne va pas :

    compteur = Sheets("planning ETN utilités").ActiveSheet.Range("D2").Value

    compteur est un objet Worksheet. Une cellule est un objet Range.

    Dans ton cas ça doit faire quelque chose comme ça:

    compteur.Range("D2") = Sheets("planning ETN utilités").Range("D2").Value

    La cellule D2 du premier onglet prend la valeur de la cellule D2 de l'onglet "planning ETN utilités".

    ;o)
    0