Bonjour,
Petit souci pour un expert mais grand souci pour un débutant en VBA.....
Sur le 1er onglet "Renseignements" d'un fichier Excel, lorsque je clique sur un bouton "Enregistrement", je lance une macro qui va lire un certain nombre de données dispersées et les enregistrer de manière ordonnée dans un 2ème onglet intitulé "Relevés" selon l'exemple ci-dessous :

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
Sub Macro_enregistrement_étanchéité()
'
' Macro_enregistrement_étanchéité Macro
 
'
    Sheets("Renseignements").Unprotect
    Sheets("Relevés").Unprotect
    Sheets("Renseignements").Range("I37").Select
    Selection.Copy
    Sheets("Relevés").Select
    Range("A1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets("Renseignements").Select
    Range("J37").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Relevés").Select
...... et qui se termine par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets("Renseignements").Select
    Range("Q37").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Relevés").Select
    Range("H1").End(xlDown).Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Sheets("Renseignements").Protect
    Sheets("Relevés").Protect
    End Sub
Cette macro fonctionne très bien mais suite à quelques erreurs de précipitation dans le "clic" sur le bouton (Enregistrement des données alors que tous les champs ne sont pas renseignés), je souhaite activer/afficher ou désactiver/rendre invisible le bouton de commande "Enregistrement". La condition étant : Si F29 = 7 (Dans l'onglet "Renseignements") => enregistrement possible.

Je viens de passer un temps fou à comprendre/tester tous les tutos trouvés sur différents sites mais impossible de faire fonctionner dans mon fichier, tout simplement parce que je ne comprends pas le langage VBA !

J'ai essayé en modifiant le début de la macro ci-dessus, après avoir déprotéger les feuilles mais ça ne marche pas !
J'ai essayé de créer la macro suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$F$29" Then Exit Sub
  If Target.Value = "7" Then Me.CommandEnregistrement.Visible = True
  If Target.Value <> "7" Then Me.CommandEnregistrement.Visible = False
End Sub
...et ça ne marche pas !

Quelqu'un pourrait-il m'aider SVP ?