[VBA] Afficher un msg quand l'onglet n'existe pas

  • Initiateur de la discussion Initiateur de la discussion R@chid
  • 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 !

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonsoir @ tous,
J'ai ce code que j'ai pu trouver sur ce fil
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim derlig
derlig = Range("A" & Application.Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range("A3:A" & derlig)) Is Nothing Then
Dim Var As String
Var = Target.Value
Sheets(Var).Activate
End If
End Sub
et qui affiche un onglet en double cliquant sur une cellule de la colonne A contenant le nom ce dernier..
Je veux que quand l'onglet n'existe pas, il m'affiche un MsgBox et il met la cellule en mode Edit..
Code:
MsgBox "Le devis " & .Range("A" & Lig).Value & " n'existe pas dans le classeur"
      , vbExclamation, "ATTENTION..."
On Error Resume Next
Je suis très nul en VBA 😛

@ + +
 
Dernière édition:
Re : [VBA] Afficher un msg quand l'onglet n'existe pas

Bonjour 🙂

Peut-être comme ça:


Dans un module
Code:
Public Function FeuilleExiste(sNomFeuille As String) As Boolean
    On Error GoTo Err_FeuilleExiste
    FeuilleExiste = False
    FeuilleExiste = Not ActiveWorkbook.Worksheets(sNomFeuille) Is Nothing
Err_FeuilleExiste:
End Function


Dans le module de la feuille
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim derlig As Long, Lig As Long
Lig = Target.Row
derlig = Range("A" & Application.Rows.Count).End(xlUp).Row
If Not Application.Intersect(Target, Range("A3:A" & derlig)) Is Nothing Then
Dim Var As String
Var = Target.Value
If FeuilleExiste(Var) Then
Sheets(Var).Activate
Else
MsgBox "Le devis " & Range("A" & Lig).Value & " n'existe pas dans le classeur", vbExclamation, "ATTENTION..." 
Target.Select
End If
End If
End Sub

Bonne journée
 
Dernière édition:
Re : [VBA] Afficher un msg quand l'onglet n'existe pas

salut

ou
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim derlig As Long
  derlig = Cells(Rows.Count, 1).End(xlUp).Row
  If Intersect(Target, Range("A3:A" & derlig)) Is Nothing Then Exit Sub
  On Error GoTo 1
  Sheets(Target.Text).Activate
  Exit Sub
1 MsgBox "Le devis " & Target & " n'existe pas dans le classeur", vbExclamation, "ATTENTION..."
End Sub
 
Re : [VBA] Afficher un msg quand l'onglet n'existe pas

Bonsoir @ tous,
Merci mes chers amis pour les réponses qui sont vraiment satisfaisantes et répondent parfaitement à mon besoin.
Déjà un tout petit peu moins, maintenant, non ?
Oui bien sûr Dranreb 1/9^9>0
Et voilà, j'ai quitté le 0 vers l'infini positif, c'est bon maintenant.

@ + +
 
- 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
225
Réponses
4
Affichages
243
Réponses
2
Affichages
154
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Retour