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

R@chid

XLDnaute Barbatruc
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 :p

@ + +
 
Dernière édition:

Isab

XLDnaute Occasionnel
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:

Si...

XLDnaute Barbatruc
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
 

R@chid

XLDnaute Barbatruc
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.

@ + +
 

Discussions similaires

Réponses
7
Affichages
353

Statistiques des forums

Discussions
312 379
Messages
2 087 779
Membres
103 663
dernier inscrit
b4ri5.c