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 :
...... 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
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
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.
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
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 :
...et ça ne marche pas !
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
Quelqu'un pourrait-il m'aider SVP ?
Partager