IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Aller à la ligne dans un tableau structuré quand la feuille est protégée


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut Aller à la ligne dans un tableau structuré quand la feuille est protégée
    Bonjour,

    J'ai construit un tableau structuré dans lequel j'ai des formules. J'ai protégé la feuille par un mot de passe en ayant pris soin de verrouiller et masquer toutes les cellules avec formules
    Ma feuille est donc protégée. Je suis à la fin de mon tableau (dernière colonne, dernière ligne), je souhaite utiliser la touche TAB pour aller à la ligne et créer une nouvelle ligne dans mon tableau structuré avec les formules et la cela bloque car ma feuille est protégée

    J'ai créé une macro qui me permet d'aller directement à la fin de mon tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub DerniereCellulePlage()
     
          Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Offset(0, 17).Select
     
    End Sub
    Existe-t-il une macro VBA qui puisse réaliser cela (déverrouiller la feuille et rajouter une ligne en fin de tableau). Je souhaiterai également mettre cette macro de façon automatique dès que l'on arrive à la dernière cellule du tableau

    Je vous remercie pour votre aide et vous souhaite une agréable journée

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 763
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour déprotéger une feuille, c'est la méthode Unprotect de l'objet Worksheet
    Pour ajouter une ligne à un objet ListObject, c'est la méthode Add de la propriété Listobjects de cet objet

    Exemple de la déprotection de la feuille nommée Accueil (mot de passe Toto) et ajout d'une ligne au tableau structuré qui est seul dans cette feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub t()
      ' Déclaration
      Const Pwd As String = "Toto"                   ' Mot de passe
      Const SheetName As String = "Accueil"  ' Nom de lafeuille
      Dim oSht As Worksheet
      '
      Set oSht = ThisWorkbook.Worksheets(SheetName)
      '
      With oSht
      .Unprotect Password:=Pwd
       With .ListObjects(1)
       .ListRows.Add
       End With
      End With
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Bonjour Philippe
    Je pensais que cela fonctionnait, mais il semble après plusieurs essais que cela ne fonctionne tjs pas sur mon tableau. J'ai extrait une partie du tableau afin que vous puissiez vérifier par vos soins. La macro se trouve dans le module1
    Les données du tableau sont purement
    Je vous remercie par avance
    Bonne journée
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 763
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ouvre pas les classeurs, merci de publier le code.
    Insére éventuellement une image partielle du tableau.
    Je pensais que cela fonctionnait, mais il semble après plusieurs essais que cela ne fonctionne tjs pas sur mon tableau.
    Qu'est-ce qui ne fonctionne pas ?
    As-tu un message d'erreur ?
    Si oui lequel et à quel numéro de ligne ?

    Le tableau est-il bien un tableau structuré et est-il bien seul dans la feuille ?

    Merci, de ne pas rééditer l'entièreté du message du fil. Cela pollue la discussion
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre du Club
    Femme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Décembre 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Bonjour Philippe,
    Pour répondre à votre dernier message
    Voici le code utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub t()
      ' Déclaration
      Const Pwd As String = "Toto"                   ' Mot de passe
      Const SheetName As String = "Accueil"  ' Nom de lafeuille
      Dim oSht As Worksheet
      '
      Set oSht = ThisWorkbook.Worksheets(SheetName)
      '
      With oSht
      .Unprotect Password:=Pwd
       With .ListObjects(1)
       .ListRows.Add
       End With
      End With
    End Sub
    :

    Qu'est-ce qui ne fonctionne pas ? Lorsque la feuille est protégé, que je suis en cellule R19 et que je veux aller à la ligne, cela ne crée pas de nouvelle ligne, et le curseur repart en cellule B7

    As-tu un message d'erreur ? Pas de message d'erreur
    Si oui lequel et à quel numéro de ligne ?

    Le tableau est-il bien un tableau structuré et est-il bien seul dans la feuille ? Oui le tableau est bien un tableau structuré dans le nom est Listing (si j'intégre la ligne d'entête, son nom est Tbl_Listing

    En PJ une image du tableau
    Merci à vous
    Images attachées Images attachées  

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 763
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,ès
    Il est normal que si la feuille est protégée, il ne soit pas possible d'ajouter de ligne

    Existe-t-il une macro VBA qui puisse réaliser cela (déverrouiller la feuille et rajouter une ligne en fin de tableau). Je souhaiterai également mettre cette macro de façon automatique dès que l'on arrive à la dernière cellule du tableau
    Dans la question initiale, je n'ai pas vu la dernière phrase. Le code que j'ai publié fonctionne si on associe le code au clic d'un bouton par exemple.
    Il faudrait donc intégrer mon code dans une procédure événementielle qui doit vérifier si on se trouve à la dernière cellule du tableau.

    Cependant, à quel moment faut-il protéger la feuille à nouveau et pourquoi finalement avoir protégé la feuille si c'est pour donner accès à l'utilisateur dès qu'il se place sur la dernière cellule du tableau. Pour moi cela n'a pas beaucoup de sens

    Allez voir dans cette contribution Empêcher la sélection d'une cellule contenant une formule dans un ListObject une solution qui me semble plus adaptée
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [Toutes versions] ajout d'une ligne dans un tableau structuré dans un fichier fermé
    Par patricktoulon dans le forum Macros et VBA Excel
    Réponses: 33
    Dernier message: 02/07/2019, 10h06
  2. Réponses: 0
    Dernier message: 03/03/2014, 23h31
  3. [phpToPDF][Tableau] Aller à la ligne dans une cellule
    Par zeusdu95 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/08/2009, 15h50
  4. Aller à la ligne dans une balise <option>
    Par nebule dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 01/12/2004, 18h27
  5. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo