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

XL 2010 Executer code si onglet introuvable

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

Niouf

XLDnaute Occasionnel
Bonjour,

J'ai une ligne de code qui fait référence à un onglet Excel, et lorsque l'onglet est introuvable, la macro bug.

Est-ce donc possible d'exécuter un code (Pour créer l'onglet manquant par exemple) au lieu de bugger la macro ?

Merci d'avance pour votre aide !
 
Hello

avec ce bout de code à inserer dans ta macro.. au bon endroit..

Code:
Sub Macro1()
  
   'nom de la feuille à créer si besoin  
    strNomFeuille = "Test"
'test de son existance
    FeuilleInexistante = IsError(Evaluate("='" & strNomFeuille & "'!A1"))
   
' si elle n'existe pas. il faut la créer. c'est comme pantashop.. :-) 
    If (FeuilleInexistante = True) Then
        Sheets.Add
        ActiveSheet.Name = strNomFeuille    
    End If
End Sub
 
Merci beaucoup messieurs !

Juste une question, que veut dire cette ligne de code concrètement :
Code:
     FeuilleInexistante = IsError(Evaluate("='" & strNomFeuille & "'!A1"))
J'ai du mal à comprendre la partie dans la parenthèse à vrai dire ...

Elle bug ma macro, et c'est difficile pour moi de la corriger sans la comprendre...
 
Re

Elle signifie : évalue (ou calcule) le contenu de la cellule A1 de la feuille nommée strNomFeuille
Si cette feuille n'existe pas cela produit une erreur et FeuilleInexistante vaudra 1
Pour la corriger il suffit de l’écrire correctement !!!!
 
Donc j'ai faux quelque part ... ?
Code:
Private Sub CommandButton1_Click()
Dim robot As Integer
Dim semaine As String
Dim jour As String

robot = ActiveSheet.Range("AV1").Value
semaine = ActiveSheet.Range("BK1").Value
jour = ActiveSheet.Range("CK1").Value

Workbooks.Open "chemin" & robot & " fichier"
'nom de la feuille à créer si besoin
  'strnomfeuille = semaine
'test de son existance
  FeuilleInexistante = IsError(Evaluate("='" & semaine & "'!A1"))

' si elle n'existe pas. il faut la créer.
  If (FeuilleInexistante = True) Then
  'Call CreerFeuille_Clic
  MsgBox ("Feuille Inexistante")
  ElseIf (FeuilleInexistante = False) Then
  Worksheets(semaine).Select

  End If
End Sub
 
Re

A tester:

Code:
Private Sub CommandButton1_Click()
Dim robot As Integer
Dim semaine As String
Dim jour As String
robot = ActiveSheet.Range("AV1").Value
semaine = ActiveSheet.Range("BK1").Value
jour = ActiveSheet.Range("CK1").Value
NomFichier = "chemin" & robot & " fichier"
Workbooks.Open NomFichier
  If Not FeuilleExiste(semaine, NomFichier) Then
    Call CreerFeuille_Clic
    MsgBox ("Feuille Inexistante")
  Else
     Workbooks(NomFichier).Worksheets(semaine).Select
  End If
End Sub

Function FeuilleExiste(NomFeuille, NomFichier)
On Error Resume Next
Set F = Workbooks(NomFichier).Sheets(NomFeuille)
   If Err.Number = 0 Then
     FeuilleExiste = True
   Else
      FeuilleExiste = False
   End If
On Error GoTo 0
End Function
 
Ecoutes bien, lorsque j'appui sur le bouton pour lancer la macro elle bug.
Lorsque je la lance en pas à pas avec F8 pour chercher d'où vient l'erreur, tout se passe bien ...

Sinon j'ai mis l'extension du fichier, et du coup la fonction seule fonctionne oui ^^
 
Oui j'ai bien compris la difficulté ...

Cette fonction n'est pour l'instant pas utilisée .
J'ai juste demandé un MsgBox pour voir si le code fonctionne.
Mais tu n'as pas d'explication sur le fait qu'en mode pas à pas je n'ai pas de bug ?
Le code fonctionne correctement, et mon MsgBox s'affiche ...

Code:
Private Sub CommandButton1_Click()
Dim robot As Integer
Dim semaine As String
Dim jour As String
robot = ActiveSheet.Range("AV1").Value
semaine = ActiveSheet.Range("BK1").Value
jour = ActiveSheet.Range("CK1").Value
NomFichier = "\\aerolia.corp\import\ME\PROJETS\Lean.Chantiers_Et_Projets\Manufacturing_ME\00-dossiers stagiaires\Apprenti Lean Assemblage - Clément MARGAT - Oct 2015 - Oct 2016\TRG\Essai Automatisation\TRG Erebus " & robot & " T11 SA.xlsm"
Workbooks.Open NomFichier
   If Not FeuilleExiste(semaine, NomFichier) Then
     'Call CreerFeuille_Clic
     MsgBox ("Feuille Inexistante")
   Else
      Workbooks(NomFichier).Worksheets(semaine).Select
   End If
End Sub

Function FeuilleExiste(NomFeuille, NomFichier)
 On Error Resume Next
 Set F = Workbooks(NomFichier).Sheets(NomFeuille)
  If Err.Number = 0 Then
  FeuilleExiste = True
  Else
  FeuilleExiste = False
  End If
 On Error GoTo 0
 End Function
 
- 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

Réponses
4
Affichages
377
Réponses
4
Affichages
201
Réponses
19
Affichages
618
Réponses
5
Affichages
294
Réponses
4
Affichages
221
Réponses
3
Affichages
147
Réponses
10
Affichages
399
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…