Vérification de nom d'onglet
Résolu/Fermé
Maksime568
Messages postés
144
Date d'inscription
mardi 15 avril 2014
Statut
Membre
Dernière intervention
28 novembre 2022
-
9 oct. 2020 à 15:44
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 28 oct. 2020 à 19:02
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 28 oct. 2020 à 19:02
A voir également:
- Vérification de nom d'onglet
- Rouvrir onglet fermé - Guide
- Comment trouver le nom de famille de quelqu'un - Forum Mobile
- Nom de l'adresse ✓ - Forum Réseaux sociaux
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
4 réponses
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
4 734
Modifié le 9 oct. 2020 à 15:50
Modifié le 9 oct. 2020 à 15:50
Bonjour
un truc du genre
un truc du genre
Function FExist(NomF As String) As Boolean ' test si la feuille existe Application.ScreenUpdating = False On Error Resume Next FExist = Not Sheets(NomF) Is Nothing Application.ScreenUpdating = True End Function Sub ajoutProduction() ' ' ajoutProduction Macro ' Dim nomF as String nomF = Format(Date, "dd-mm-yy") if FExist(nomF) Then exit sub End If ActiveWorkbook.Unprotect Sheets("Suivi Production").Select Sheets("Suivi Production").Copy After:=Sheets(1) ActiveSheet.Name = nomF ActiveWorkbook.protect Structure:=True, Windows:=False End Sub
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Ambassadeur
1 568
9 oct. 2020 à 15:54
9 oct. 2020 à 15:54
bonjour, suggestion:
Option Explicit Sub ajoutProduction() ' ' ajoutProduction Macro ' Dim nom As String nom = Format(Date, "dd-mm-yy") If Not existedeja(nom) Then ActiveWorkbook.Unprotect Sheets("Suivi Production").Select Sheets("Suivi Production").Copy After:=Sheets(1) ActiveSheet.Name = Format(Date, "dd-mm-yy") ActiveWorkbook.Protect Structure:=True, Windows:=False End If End Sub Private Function existedeja(quoi As String) As Boolean Dim ong As Worksheet For Each ong In ThisWorkbook.Worksheets If ong.Name = quoi Then existedeja = True Exit Function End If Next ong existedeja = False End Function
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
4 734
9 oct. 2020 à 16:00
9 oct. 2020 à 16:00
ahhhhhhhhhhhhh.... quelle horreure...
Une boulce pour vérifier le nom des feuilles..... aaaaahhhhhhhhhh.... au secours.......
:-)
Une boulce pour vérifier le nom des feuilles..... aaaaahhhhhhhhhh.... au secours.......
:-)
Maksime568
Messages postés
144
Date d'inscription
mardi 15 avril 2014
Statut
Membre
Dernière intervention
28 novembre 2022
>
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
9 oct. 2020 à 16:20
9 oct. 2020 à 16:20
c'est à dire?
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
>
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
9 oct. 2020 à 16:23
9 oct. 2020 à 16:23
c'est un choix subjectif, pour éviter le
on error, dont certains abusent parfois.
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
9 oct. 2020 à 17:18
9 oct. 2020 à 17:18
Bonjour le Fil,
Pour éviter les horreurs (Boucle et On Error) :
Pour éviter les horreurs (Boucle et On Error) :
Function FeuilleExiste(ByVal strNomFeuille As String) As Boolean FeuilleExiste = Not IsError(Evaluate("='" & strNomFeuille & "'!A1")) End Function
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
9 oct. 2020 à 17:25
9 oct. 2020 à 17:25
bof, cela ne fonctionne que s'il n'y a pas d'erreur en A1 de la feuille...
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Modifié le 9 oct. 2020 à 19:00
Modifié le 9 oct. 2020 à 19:00
Et quelle est la probabilité que ça arrive avec cette cellule ?
Et celle-ci fonctionne avec une erreur en A1 d'une feuille existante :
Function FeuilleExiste(ByVal strNomFeuille As String) As Boolean FeuilleExiste = Not IsError(Evaluate("='" & strNomFeuille & "'!XFD1048576")) End Function
Et celle-ci fonctionne avec une erreur en A1 d'une feuille existante :
Function FeuilleExiste(ByVal strNomFeuille As String) As Boolean FeuilleExiste = Not IsError(Evaluate("=CELL(""col"",'" & strNomFeuille & "'!A1)")) End Function
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
9 oct. 2020 à 22:43
9 oct. 2020 à 22:43
merci!
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
1 568
>
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
27 oct. 2020 à 20:17
27 oct. 2020 à 20:17
et une idée de comment faire pour vérifier la présence d'un onglet dans un classeur non ouvert?
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
>
yg_be
Messages postés
23471
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 février 2025
Modifié le 28 oct. 2020 à 17:15
Modifié le 28 oct. 2020 à 17:15
Bonjour yg_be
Avec une connexion ADODB :
Avec une connexion ADODB :
'Nécéssite d'activer la référence Microsoft ADO ext x.x for DLL and Security 'Nécéssite d'activer la référence Microsoft ActiveX Data Objects x.x Library Option Explicit Sub testFeuilleFermee() Dim sFichier As String Dim sFeuille As String sFichier = ThisWorkbook.Path & "\Classeur_à_lire.xls" 'à adapter sFeuille = "Feuille 4" MsgBox FeuilleFermeeExiste(sFichier, sFeuille) End Sub Function FeuilleFermeeExiste(sNomCompletClasseur$, sNomFeuille$) As Boolean Dim oCnx As ADODB.Connection Dim oCat As ADOX.Catalog Dim oTbl As ADOX.Table Set oCnx = New ADODB.Connection Set oCat = New ADOX.Catalog oCnx.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sNomCompletClasseur & ";Extended Properties=Excel 8.0;" Set oCat.ActiveConnection = oCnx For Each oTbl In oCat.Tables If Replace(oTbl.Name, "'", "") = sNomFeuille & "$" Then FeuilleFermeeExiste = True Next Set oCat = Nothing Set oTbl = Nothing oCnx.Close Set oCnx = Nothing End Function
Maksime568
Messages postés
144
Date d'inscription
mardi 15 avril 2014
Statut
Membre
Dernière intervention
28 novembre 2022
12 oct. 2020 à 11:50
12 oct. 2020 à 11:50
Autre point,
ma macro me permet de générer une nouvelle feuille qui sera complétée.
comment pourrais-je faire pour éviter que l'on vienne modifier les données des autres feuilles précédemment complétées?
Mais tout en me laissant consulter les autres onglets afin de pouvoir en visualiser le contenu.
ma macro me permet de générer une nouvelle feuille qui sera complétée.
comment pourrais-je faire pour éviter que l'on vienne modifier les données des autres feuilles précédemment complétées?
Mais tout en me laissant consulter les autres onglets afin de pouvoir en visualiser le contenu.
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
4 734
12 oct. 2020 à 11:55
12 oct. 2020 à 11:55
Bonjour,
Normalement..... nouvelle question = ouverture d'une nouvelle discussion propre à celle-ci sur le forum...
Quoi qu'il en soit, Excel te permet de protéger les feuilles....
en vba, il existe la méthode "protect"
Tu trouveras des tonnes d'exemples sur le net sans difficulté.
Normalement..... nouvelle question = ouverture d'une nouvelle discussion propre à celle-ci sur le forum...
Quoi qu'il en soit, Excel te permet de protéger les feuilles....
en vba, il existe la méthode "protect"
Tu trouveras des tonnes d'exemples sur le net sans difficulté.
Maksime568
Messages postés
144
Date d'inscription
mardi 15 avril 2014
Statut
Membre
Dernière intervention
28 novembre 2022
>
jordane45
Messages postés
38424
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 février 2025
12 oct. 2020 à 11:59
12 oct. 2020 à 11:59
oui c'est vrai.
je regarde pour faire un autre sujet si je ne trouve pas réponse à ma question ☺
je regarde pour faire un autre sujet si je ne trouve pas réponse à ma question ☺
Modifié le 9 oct. 2020 à 16:21
possible de rajouter une MsgBox si la feuille existe déjà pour prévenir?
9 oct. 2020 à 16:28
Dans le if avant le exit sub