Quelques petites questions sur un tableau

Imer2007

XLDnaute Occasionnel
Bonjour le forum,

Depuis quelques jours je travaille sur une charge de projet sur Excel et j'ai quelques soucis sur la mise en page du projet, à savoir :

1- J'aimerais que l'utilisateur n'ait accès qu'aux cellules du tableau (de B a P). Si je fais une protection de la feuille, je ne peux pas utiliser le bouton "Nouvelle ligne", bouton qui créé une ligne identique à la précédente avec une numérotation automatique.

2- En corrélation avec 1), les cellules du tableau qui ont des formules (cellules en colonnes B, G, I, K et L) ne soient pas sélectionnables pour éviter des erreurs de manipulation, mais que les autres le soient...

3- Pour une histoire de visualisation, que les cellules sélectionnables soient en couleur.

Voilà, si quelqu'un(e) peut m'aider, je le remercie d'avance.

Je ne peux pas vous envoyer le fichier, il est trop important (+ de 2 Mo), donc je vous transmet une copie d'écran.

http://img60.imageshack.us/my.php?image=pasdenompk9.jpg
 

tototiti2008

XLDnaute Barbatruc
Re : Quelques petites questions sur un tableau

Bonjour imer,

1-Il faut que tu intèges la déprotection puis reprotection de la feuille dans le bouton Nouvelle ligne (ainsi que le déverrouillage des cellules de la nouvelle ligne)

2-encore gérable avec la protection, tu peux interdire de sélectionner les cellules verrouillées

3-le pot de peinture ?
 
G

Guest

Guest
Re : Quelques petites questions sur un tableau

re Bonjour Imer,

Peux-tu joindre ton fichier sur le forum et non un autre site? (Données strictement nécéssaires et anonymisées, et avec la macro)

A+
 

Imer2007

XLDnaute Occasionnel
Re : Quelques petites questions sur un tableau

Bon je vous écris le code,

Code de la feuille nommée Charge de projet

Code:
'Appel Suppression de ligne
Private Sub CommandButton2_Click()
Call Suppr
End Sub

'Appel de la couleur pour les cellules
Private Sub Worksheet_change(ByVal Target As Range)
Call Couleur
End Sub

'Macro de recopie de lignes
Private Sub CommandButton1_Click()
Sheets("Charge de projet").Unprotect Password:="andromede"
 Dim NumLigne As Long
    NumLigne = ActiveSheet.Range("B65536").End(xlUp).Offset(1, 0).Row
    Application.ScreenUpdating = False
    ActiveSheet.Range("B" & NumLigne - 1 & ":P" & NumLigne - 1).Copy
    ActiveSheet.Range("B" & NumLigne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Range("B" & NumLigne).Value = ActiveSheet.Range("B" & NumLigne - 1).Value + 1
    Application.CutCopyMode = False
    ActiveSheet.Range("D" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("E" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("F" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("H" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("I" & NumLigne).Select
    Selection.ClearContents
    Selection.Value = Date
    ActiveSheet.Range("J" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("M" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("N" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("O" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("P" & NumLigne).Select
    Selection.ClearContents
    ActiveSheet.Range("C" & NumLigne).Select
    Selection.ClearContents
    Application.ScreenUpdating = True
Sheets("Charge de projet").protect Password:="andromede"
End Sub

'Macro mise en forme couleur
Sub Couleur()
Sheets("Charge de projet").Unprotect Password:="andromede"
    Dim Cel As Range
Application.ScreenUpdating = False
For Each Cel In Selection
Select Case Cel.Value
    Case "Annulé"
        Cel.Interior.ColorIndex = 36
    Case "En projet"
        Cel.Interior.ColorIndex = 37
    Case "Plannifié"
        Cel.Interior.ColorIndex = 38
    Case "En traitement"
        Cel.Interior.ColorIndex = 40
    Case "Reporté"
        Cel.Interior.ColorIndex = 43
    Case "Mis en attente"
        Cel.Interior.ColorIndex = 45
    Case "Terminé"
        Cel.Interior.ColorIndex = 48
End Select
Next Cel
Application.ScreenUpdating = True
Sheets("Charge de projet").Protect Password:="andromede"
End Sub

Code dans le workbook
Code:
'Affichage message avertissement selon date butoir et etat
Private Sub workbook_open()
    Dim Dt As Range
    Dim Ws As Worksheet
    Set Ws = Worksheets("Charge de projet")
    For Each Dt In Ws.Range("K8:K" & Ws.Range("K65536").End(xlUp).Row)
        If Dt < Date And Dt <> "" And Dt.Offset(0, 2) <> "Annulé" And _
 Dt.Offset(0, 2) <> "Terminé" Then _
            MsgBox "Attention ! Date butoir dépassée pour " & Dt.Offset(0, -7) & " '" & _
            Dt & "'", _
            vbExclamation, " message d'alerte "
    Next Dt
End Sub

COde du module
Code:
'Macro suppression de lignes
Sub Suppr()
Sheets("Charge de projet").Unprotect Password:="andromede"
    Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select
    Selection.Delete
Sheets("Charge de projet").Protect Password:="andromede"
End Sub
 

Imer2007

XLDnaute Occasionnel
Re : Quelques petites questions sur un tableau

Si ma colonne B contenant le numéro qui s'incrémente à chaque création de ligne est protégée (cellules non sélectionnables), la création de nouvelle ligne ne se fait pas.
A l'inverse, si ma colonne B est déprotégée, la cellule contenant le numéro est sélectionnable, la création de nouvelle ligne peut se faire.

En espérant avoir été clair.
 

Imer2007

XLDnaute Occasionnel
Re : Quelques petites questions sur un tableau

Rebonjour le forum,

Bon, j'ai laissé tomber pour l'histoire de la protection de la colonne s'incrémentant.

Mais je n'en ai pas fini ! lol
Cette fois ci, j'aimerais un truc tout bête par rapport à ma macro de suppression.
Quelque soit ma position dans mon tableau, j'aimerais que ma macro me lise le contenu de ma cellule en colonne B et si le contenu est différent de 1, je supprime sinon je ne supprime pas

Par exemple, je suis en G4, si je clique sur mon bouton de suppression, je veux qu'il se passe les étapes suivantes:
-lecture de la cellule B4
- si la cellule B4 ne contient pas 1 alors je supprime sinon je sors.

Mon bout de macro pour la suppression est la suivante, comment l'améliorer pour obtenir ce que je souhaite.

Merci d'avance à ceux qui voudront bien m'aider.

Code:
Sub Suppr()
Sheets("Charge de projet").Unprotect Password:="andromede"
    [COLOR="Green"]'sélection de la ligne correspondant à la cellule[/COLOR]
    Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select
    [COLOR="Green"]'Suppression de ma ligne[/COLOR]
    Selection.Delete
Sheets("Charge de projet").Protect Password:="andromede"
End Sub
 
G

Guest

Guest
Re : Quelques petites questions sur un tableau

Bonjour Imer,

Code:
Sub Suppr()
Sheets("Charge de projet").Unprotect Password:="andromede"
    'Compare G et supprime éventuellement la ligne
    [COLOR=blue]if Cells(ActiveCell.Row,7)<>1 then ActiveCell.EntireRow.Delete[/COLOR]
    Sheets("Charge de projet").Protect Password:="andromede"
End Sub

A bientôt
 

Discussions similaires

Réponses
9
Affichages
153
  • Résolu(e)
Microsoft 365 Tri et Import
Réponses
4
Affichages
163

Statistiques des forums

Discussions
312 175
Messages
2 085 953
Membres
103 058
dernier inscrit
florentLP