Si cellule B3 non vide alors metre PE dans D3

Bonjour

je souhaite de l'aide pour continuer le fichier que je suis en train de développer.

Mon problème à résoudre est que dans chaque feuilles qui possède un tableau structuré (feuilles qui peuvent être ajouter où supprimer), je puisse:

Si BP "Mettre PE" clic

Alors

Quand la colonne "C3" est non vide -> Mettre en "D3" "PE"

La mise en forme conditionnelle mettra la couleur automatiquement en "D3"

J'ai essayé avec un bout de code récupéré sur le site , mais je n'arrive à le faire fonctionner.

J'ai volontairement mis ce code avec ' devant

Merci de votre aide

PS: Le reste du code fonctionne , mais je suis preneur pour les améliorations que vous pourrez lui apporter

62021-essais.xlsm (66.86 Ko)

Bonjour,

Si j'ai bien compris :

Private Sub CommandButton3_Click()
Dim i%, Y%
For i = 3 To Worksheets.Count
    With Worksheets(i)
        For Y = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
            If Not IsEmpty(.Cells(Y, 3)) Then .Cells(Y, 4) = "PE"
        Next Y
    End With
Next i
End Sub

Par contre les "PE" sont inscrits en orange, je me suis fait avoir en pensant qu ma macro ne fonctionnait pas.

Cdlt,

Bonsoir Ergotamine

Parfais ton code.

Je vais essayer de comprendre mon, mes erreur(s)

Merci

En voyant le résultat je suis poser la question suivante:

Faut-il mette une alerte avec boite de dialogue yes no pour valider le choix

OU

Faut-il un mot de passe pour verrouiller cet autorisation de clic.

Ou

Créer par un "mot de pass " , l'autorisation d’accéder la la feuille administrateur et data.

Ce fichier étant partager entre des opérateurs qui remplisse la colonne "D" , qui lorsque c'est "NON" donc cellule "D" devient rouge et en cellule "E" mettre un commentaire.

Le BP ne servant que pour la génération du "Pas Essayer" au départ

Dans l'attente de te relire

Merci

Bonjour,

Dès lors que nous rentrons dans l'aspect autorisation d'accès cela devient plus complexe car pour quelqu'un qui connait il y aura toujours moyen de contourner. Cependant, on peut donner accès à la feuille ADMINISTRATEUR que via l'utilisateur connecté :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Application.UserName = "Lilly" Then 'A adapter
    Worksheets("ADMINISTRATEUR").Visible = xlVerryHidden
    ThisWorkbook.Protect "MDP", True, False
    ThisWorkbook.Save
End If
End Sub

Private Sub Workbook_Open()
If Application.UserName = "Lilly" Then 'A adapter
ThisWorkbook.Unprotect "MDP"
    With Worksheets("ADMINISTRATEUR")
        .Visible = True
        .Activate
    End With
End If
End Sub

Vous pouvez aussi tout simplement faire quelque chose du style :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Worksheets("ADMINISTRATEUR").Visible = xlVerryHidden
ThisWorkbook.Protect "MDP", True, False
ThisWorkbook.Save
End Sub

Cette dernière méthode me semble plus robuste. Quelque soit la personne, à la fermeture du classeur, la feuille ADMINISTRATEUR est masquée et un mot de passe est appliqué sur le classeur empêchant l'activation de la feuille sans passer par Révision > Protéger le classeur > Et renseigner le MDP pour en ôter la protection. Ainsi pas besoin de macro Workbook_Open.

PS : Le code est à placer dans le module ThisWorkbook.

Cdlt,

Bonsoir

Merci pour ton avis, et ne maitrisant pas encore assez les codes VBA, je vais mettre tes codes dans ma base doc, cela pourrait être utile plus tard.

J'ai résolu ma protection BP "Mettre PE" en faisant appel à une seconde userform, ou là je doit saisir un Password qui exécute le code que tu ma donné , et qui fonctionne parfaitement.

Par contre en analysant le résultat, je me suis aperçu que j'avais oublié d'effacer de:

Cells(Y, 5)à Cells(Y, 10)

Donc je me suis mis à la recherche pour pouvoir mettre une seconde instruction a:

Private Sub CommandButton3_Click()
Dim i%, Y%
For i = 3 To Worksheets.Count
    With Worksheets(i)
        For Y = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
            If Not IsEmpty(.Cells(Y, 3)) Then .Cells(Y, 4) = "PE"
        Next Y
    End With
Next i
End Sub

Je t'avoue que je n'y suis pas encore arrivé.

Peux-tu me réaliser cela stp

Merci

Bonjour,

Si vous souhaitez effacer cette plage sous les mêmes conditions que citées alors :

Private Sub CommandButton3_Click()
Dim i%, Y%
For i = 3 To Worksheets.Count
    With Worksheets(i)
        For Y = 2 To .Cells(.Rows.Count, 2).End(xlUp).Row
            If Not IsEmpty(.Cells(Y, 3)) Then
                .Cells(Y, 4) = "PE"
                .Range(.Cells(Y, 5), .Cells(Y, 10)).ClearContents
            End If
        Next Y
    End With
Next i
End Sub

Cdlt,

Bonjour a tous

Bonjour Ergotamine

Grand merci pour ton code.

Je n'ai pas fais attention au With, donc au " ." qui permet de faire une liste d'instruction à la suite.

De plus je savais que je devais utilisé "Range , mais je suis partie avec le Delete.

Si j'ai bien compris delete doit être associer avec DerLig

Je clos ce sujet en te disant Merci pour ton aide

Rechercher des sujets similaires à "vide metre"