Bonjour à tous ,
J'aurais besoin d'aide concernant un petit problème de programmation en VBA. J'ai compris l'erreur de mon fichier mais ne trouve pas de solutions.
Voici le fonctionnement de mon fichier :
Je dispose d'un fichier EXCEL composé de 2 feuilles de base ("TBR","Checklist") et d'un userform lui-même composé de 3 boutons (ajouter, effacer, quitter).
Lorsque j'ouvre mon fichier EXCEL ou que j'appuie sur un bouton "+" le userform apparait.
A partir du moment où mon userform est ouvert je créer une nouvelle checklist à partir de ma feuille de base "Checklist" et je l'ajoute par incrémentation dans ma feuille "TBR" en cliquant sur le bouton ajouter de mon userform.
Ce que j'aimerais, c'est qu'à l'aide de mon bouton ajouter de mon userform je puisse ajouter autant de nouvelle checklist que je souhaite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Ajouter_Click() Sheets("Checklist").Copy After:=Sheets(Sheets.Count) 'copie la checklist vierge remplie dans le userform et la colle à la dernière feuille du classeur ActiveSheet.Name = PN.Value Sheets("TBR").[B1].Value = ActiveSheet.Name Sheets("Checklist").Select ActiveWindow.SelectedSheets.Visible = False End Sub
Le problème est que j'ai fait en sorte de cacher la feuille de base "Checklist" (qui permet de créer les nouvelles checklists) à chaque clique du bouton "ajouter" pour éviter toutes modifications de la part d'un utilisateur de ma feuille de base.
De ce fait je ne peux créer qu'une seule checklist à la fois car la ligne Sheets ("Checklist").select de mon premier code est en erreur si je clique une seconde fois sur le bouton ajouter vu que ma feuille de base "Checklist" ne redevient pas visible après avoir cliqué sur le bouton ajouter.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Sub Ajouter() If Création.Visible = False Then Sheets("Checklist").Visible = True Création.Show End If End Sub
Ma première idée était de faire une boucle avec un do while mais je n'ai pas réussi.
J'espère avoir été assez claire... Avez-vous une idée, des pistes d'actions?
Merci d'avance à ceux qui répondront à cette discussion
Partager