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

Création de feuille si n'existe pas

  • Initiateur de la discussion Initiateur de la discussion altefqhatre
  • 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 !

A

altefqhatre

Guest
Bonjour tout le monde 🙂

Je viens à vous pour demander un petit coup de pouce 🙁

J'ai un classeur de statistiques dans lequel chaque feuille correspond à un mois. Le but étant, depuis la première sheet, de copier des données sur la feuille du mois en question. Si la feuille existe, pas de soucis!

Dans la première feuille, l'utilisateur entre la date au format "jj.mm.aaaa" dans la cellule A1 et puis, dans la cellule A2 j'ai juste rajouté "=TEXTE(DATE;"mmmm")". De cette façon je peux directement contrôler si la feuille avec le mois existe en la comparant avec la valeur A2.

En revanche, j'aimerais pouvoir automatiser un peu mieux et créer automatiquement une nouvelle feuille si la date entrée dans le première sheet est dans un mois dont la feuille n'existe pas... Je sais pas si c'est très clair, désolé :-(

Voilà à quoi j'ai penser:

Code:
Dim sht as Worksheet

For each sht in Worksheets
If sht.Name = Range("A2").Value Then

'exécution des instructuctions

Else If

'Création de la feuille et mise en place du format
'exécution des instructions

End if
Next sht

Le problème est que la macro va créer la feuille si elle n'existe pas mais après elle continue est en re-créer une et hop plantage puisqu'elle existe déjà!

Qqun aurait une petite idée siouplay?

Merci beaucoup d'avance!
 
Dernière modification par un modérateur:
Re : Création de feuille si n'existe pas

bonjour altefqhatre

A tester:

Code:
Sub toto()
Dim sht As Worksheet
For Each sht In Worksheets
 If sht.Name = Range("A2").Value Then
 'exécution des instructuctions
   Exit Sub
  End If
Next sht
'Création de la feuille et mise en place du format
'exécution des instructions
End Sub
 
Re : Création de feuille si n'existe pas

Hello,

Ben justement ami pierrejean j'allais te citer en exemple 😀

Te voilà...
Code:
Private Sub CommandButton1_Click()

    Dim n As Integer
    Dim trouve As Boolean
    
    Application.DisplayAlerts = False

    For n = 1 To Sheets.Count
        If Sheets(n).Name = ActiveSheet.Range("A2").Value Then
            MsgBox "Cette feuille existe déjà !"
            trouve = True
            '... tes actions
            '... idem
            Exit For
        End If
    Next n

    If Not trouve Then
        ActiveWorkbook.Sheets.Add after:=Worksheets(Worksheets.Count)
        '... pour la nommer
    End If
    
    Application.DisplayAlerts = True

End Sub
Bonne fin de journée !
 
Re : Création de feuille si n'existe pas

Bonjour altefqhatre, salut pierrejean 🙂

Il est parfaitement inutile de faire une boucle pour passer en revue les feuilles.

Il y a plusieurs solutions possibles avec un contrôle d'erreur, par exemple :

Code:
Sub Test()
On Error Resume Next
If IsError(Sheets(Range("A2").Text).Name) Then
'Création de la feuille et mise en place du format
End If
On Error GoTo 0
'Exécution des instructions
End Sub

Edit : salut aussi Hulk, je ne t'avais pas vu 🙂

A+
 
Dernière édition:
Re : Création de feuille si n'existe pas

Re

Hello Job
Par principe j'evite autant que faire ce peut d'utiliser la gestion d'erreur
Et a moins d'avoir une multitude de feuilles la boucle ne doit pas beaucoup ralentir l'execution
 
Re : Création de feuille si n'existe pas

Re pierrejean 🙂

Par principe j'evite autant que faire ce peut d'utiliser la gestion d'erreur

On fait pourtant des choses très bien avec On Error Resume Next suiv de If IsError() ou If Err.

Mais surtout quand on fabrique la macro mettre après On Error GoTo 0 sinon on ne voit plus les bug...

Mon principe : le plus simple et le plus rapide, donc le plus "élégant"

A+
 
Re : Création de feuille si n'existe pas

Bonjour!

Merci beaucoup pour vos réponses!

J'ai pris la méthode proposée par Hulk et ça fonctionne parfaitement 🙂

a++
 
Re : Création de feuille si n'existe pas

Salut à tous,
je reprend ce sujet car je souhaite faire la même chose mais j'ai un petit soucis.
Voilà j'ai plusieurs colonnes (A à N). Dans la colonne K se trouve différents secteurs de mon entreprise. Si je rajoute un secteur je souhaiterai qu'une feuille automatiquement.
Ci-joint le fichier pour plus de clareté.

Mon but premier était à partir de liste MDC (feuille générale contenant toutes les infos) répartir les infos par secteur. Et pour chaque secteur une feuille différente. Je bloque encore sur certains points mais je ne désespère pas. Le problème est que si je rajoute un secteur ma macro ne me sert à rien. Il faudrait donc qu'une autre feuille soie créée de façon automatique.
J'espère être assez clair.
Quelqu'un aurait-il une idée svp ?
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
775
Réponses
1
Affichages
343
wDog66
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…