Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ajouter une seule fois une feuille

  • Initiateur de la discussion Initiateur de la discussion degap05
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

degap05

XLDnaute Impliqué
Bonjour,

La macro du fichier joint, permet d'ajouter une feuille, nommée: "Validé".
Avec votre aide, je souhaiterais déclencher la macro, une fois seulement, lorsque un "x" est entré en colonne D de la feuille1.
Si la feuille "Validé" existe déjà, lorsqu'on indique un autre "x", la macro ne s'exécute pas.

Merci.
 

Pièces jointes

Re : Ajouter une seule fois une feuille

bonjour degap05,

voici le code à mettre sur la feuille concernée (clic droit sur l'onglet --> visualiser le code)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim test As Boolean, curSheet As Worksheet
'quitter la macro si ce n'est pas une cellule de la colonne D qui vient d'être modifiée
If Application.Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
'quitter la macro si ce n'est pas un "x" ou un "X" dans cellule qui vient d'être modifiée
If UCase(Target.Text) <> "X" Then Exit Sub

'on suppose que la feuille n'a pas encore été créée
test = False
'bocler sur chaque feuille du classeur
For Each curSheet In ThisWorkbook.Sheets
    'si la feuille courante s'appelle "Validé", préciser que la feuille a déjà été créée
    If curSheet.Name = "Validé" Then test = True
Next curSheet
'si la feuille n'a pas encore été créée, la créer
If Not test Then ThisWorkbook.Sheets.Add.Name = "Validé"
End Sub

a+
 
Re : Ajouter une seule fois une feuille

re,

tu peux créer cette macro dans un module ("Module1" par exemple) qui crée une feuille "Validé" si elle n'existe pas déjà
Code:
Public Sub CreerFeuille()
Private Sub Worksheet_Change(ByVal Target As Range)
Dim test As Boolean, curSheet As Worksheet

'on suppose que la feuille n'a pas encore été créée
test = False
'bocler sur chaque feuille du classeur
For Each curSheet In ThisWorkbook.Sheets
    'si la feuille courante s'appelle "Validé", préciser que la feuille a déjà été créée
    If curSheet.Name = "Validé" Then test = True
Next curSheet
'si la feuille n'a pas encore été créée, la créer
If Not test Then ThisWorkbook.Sheets.Add.Name = "Validé"
End Sub

mais tu devra avoir du code sur la feuille (pour vérifier la saisie d'un "x" dans la colonne "D"
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'quitter la macro si ce n'est pas une cellule de la colonne D qui vient d'être modifiée
If Application.Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
'quitter la macro si ce n'est pas un "x" ou un "X" dans cellule qui vient d'être modifiée
If UCase(Target.Text) <> "X" Then Exit Sub

Module1.CreerFeuille
End Sub

a+
 
Re : Ajouter une seule fois une feuille


Bonjour, mromain,

J'ai installé le code qui fonctionne bien, mais le premier "X" est effacé en même temps que se créée la feuille....embêtant.

Merci.
A+
 
Re : Ajouter une seule fois une feuille

bonjour degap05,

essaye avec ce code :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim test As Boolean, curSheet As Worksheet
'quitter la macro si ce n'est pas une cellule de la colonne D qui vient d'être modifiée
If Application.Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
'quitter la macro si ce n'est pas un "x" ou un "X" dans cellule qui vient d'être modifiée
If UCase(Target.Text) <> "X" Then Exit Sub

'on suppose que la feuille n'a pas encore été créée
test = False
'bocler sur chaque feuille du classeur
For Each curSheet In ThisWorkbook.Sheets
    'si la feuille courante s'appelle "Validé", préciser que la feuille a déjà été créée
    If curSheet.Name = "Validé" Then test = True
Next curSheet
'si la feuille n'a pas encore été créée, la créer
If Not test Then ThisWorkbook.Sheets.Add.Name = "Validé"
[B]'sélectionner la feuille (où la cellule à été modifiée "x")
Target.Parent.Select[/B]
End Sub

a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…