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 :

macro pour inserer 2 lignes avec formatage mais probleme de protection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    responsable etutes batiment
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : responsable etutes batiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut
    Bonjour le forum,

    je viens vers vous car j'ai un petit soucis pour créer une macro insertion deux lignes avec mise en faorme a cause de la protection anti coller copier glisser.

    j'ai créer un planning afin de suivre l'évolution des travaux de mon equipe.

    Afin d'éviter des modifications de la mise en page pour les utilisateurs

    dans le Private Sub Worksheet_Change(ByVal Target As Range)
    j'empêche le copier coller et le copier glisser

    j'ai également mis une macro qui me permet de verrouiller la feuille Bouton protéger : c'est pour moi

    les utilisateurs peuvent remplir les cellules non verrouillées du classeur par texte et couleur avec petit bouton ( qui ôtent la protection et la remettent)

    Cela fonctionne parfaitement.

    mes problèmes sont :

    uniquement pour moi :

    est il possible de protéger également la structure du classeur ? avec mon bouton .....!

    Pour l'ensemble :

    les ligne du planning fonctionnent par deux.

    je souhaiterai en sélectionnant deux lignes communes pouvoir insérer ces deux lignes en dessous mais en conservant le formatage complet des lignes sans les valeurs .
    actuellement j'arrive a déprotéger et insérer mais je n'ai plus le formatage des cellules .
    Je pense que cela viens de la protection anti copier glisser coller mais cette protection est nécessaire pour éviter l'anarchie dans le tableau

    Je vous met ci dessous les different codes que j'ai mis

    Dans le worksheet
    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
    16
    17
    18
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    'COPIER GLISSER ET COPIER COLLER====================================
    Dim tablo, sel As Range
      On Error Resume Next 'sécurité
      Application.EnableEvents = False 'désactive l'action des évènements
      tablo = Target 'mémorise les valeurs
      'POUR LE GLISSER on reseclectionner la plage
      Set sel = Selection ' on reselectionne la plage
      Application.Undo 'annule le collage
      Target = tablo 'rétablit uniquement les valeurs
      sel.Select 'plage
      Application.EnableEvents = True
     
     
    ' FIN COPIER COLLER / COPIER GLISSER
     
    End Sub
    pour protéger déproteger

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Private Sub Cde_Protect_Click()
     'Déclaration variables
     Dim F As Worksheet
     Dim Str_password As String
     Dim Str_Name As String
     
     Str_password = ""
     Str_Name = ActiveSheet.Name
     If Cde_protect.Caption = "Protéger" Then
     'Activation protection
     
    For Each F In Worksheets
     
    F.Select
     
    ActiveSheet.Protect Password:=Str_password, DrawingObjects:=True, Contents:=True, Scenarios:=True
     
    Next F
     
    Cde_protect.Caption = "Déprotéger"
     Else
     'Désactivation protection
     
    'test pour savoir si autorisé
     
    If InputBox("Entrez le mot de passe !", "PASSWORD") <> Str_password Then Exit Sub
     
    For Each F In Worksheets
     
    F.Select
     
    ActiveSheet.Unprotect Password:=Str_password
     
    Next F
     
    Cde_protect.Caption = "Protéger"
     End If
     'retour feuille bouton
     Sheets(Str_Name).Activate
     
     
     
    End Sub
    Et un code des boutons pour metre couleur dans cellules non verouillées pour les utilisateurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
    'PLANIF
    Dim motif As String
        ActiveSheet.Unprotect Password:=""
        Selection.Interior.ColorIndex = 43
     
     ActiveSheet.Protect Password:="", DrawingObjects:=True, Contents:=True, Scenarios:=True
    End Sub
    voila ou j'en suis et je bloque.
    je suis conscient que je demande beaucoup mais , je ne suis pas tres fort en VBA je ne fait que commencer.

    Je vous en remercie tous d'avance

    A bientôt

    Kyliann

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Je n'ai pas tout compris de ton/tes problèmes, mais si tu veux insérer des lignes au même format que d'autres, tu peux les copier, puis insérer la copie.
    Le format, et les formules s'il y en a, devraient suivre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim L1 As Long, L2 As Long
     
        L1 = 8  'reste à définir
        L2 = 9  'reste à définir
     
        Rows(L1 & ":" & L2).Copy
        Rows(L1 & ":" & L2).Insert xlShiftDown
    J'oubliais de mentionner qu'il faut effacer les cellules après l'insertion.
    Comme l'insertion se fait au niveau des lignes copiées, la position est toujours celle d'origine.
    Il faut donc effacer 2 lignes plus bas (L1+2, L2+2)

  3. #3
    Candidat au Club
    Homme Profil pro
    responsable etutes batiment
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : responsable etutes batiment

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Par défaut
    Bonjour parmi, Le Forum

    je te remercie de ton aide c'est super sympa

    C'est vrai que mes explications ne sont peut etre pas très claires

    Je pense que c'est plus parlant avec un fichier je vais donc joindre un extrait du fichier avec quelques explications


    Actuellement j'enpeche le coiper coller et glisser, pour eviter les differences de formatage entre cellule colonne etc....!
    j'ai une protection réservé pour le planificateur afin d'eviter toujours certaines erreurs

    les lignes du planning fonctionnent par deux


    je souhaite pouvoir inserer par macro un groupe de 2 lignes entre deux groupes ou a la fin des groupe Tout en conservant le formatage colonne, cellule ligne sans les valeurs ( sauf formules)

    Fonction reservée uniquement en mode déproteger. puisque je taperai mon mdp pour cela.

    J'ai mis queslques explications sur le fichier.


    Je te remercie encore de m'avoir proposer une solution mais ce n'est pas vraiment ce que je souhaiterai..


    Merci a tous de votre aide

    Cordialement
    Kyliann
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2007] modification macro pour rajout de ligne avec formule
    Par exelan dans le forum Excel
    Réponses: 3
    Dernier message: 27/05/2014, 14h45
  2. Réponses: 1
    Dernier message: 27/10/2012, 19h59
  3. [XL-2010] Macro pour inserer des ligne avec les formules de la ligne au dessus
    Par Argonan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2012, 12h58
  4. Excel : Macro pour positionnement sur ligne
    Par danielh dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/10/2006, 08h45
  5. probleme pour tracer une ligne avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/08/2006, 19h10

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