[RESOLU] Vérification présence onglet avec le nom de cellules dans plage

jozerebel

XLDnaute Occasionnel
Salut à tous,

J'ai une plage de cellules avec des valeurs à l'intérieur qui normalement correspondent à des noms d'onglets de ce même classeur.

Sauf qu'il peut arriver parfois qu'une valeur fasse référence à un onglet inexistant. Ce qui est problématique pour mes formules et mes macros.

Du coup, avant de lancer d'autres macros, je souhaiterais avertir l'utilisateur de la non présence (si c'est le cas) d'un ou plusieurs onglets.

J'ai bidouillé la macro suivante, mais ça ne fonctionne pas. ça me boucle sur toutes les feuilles pour chaque cellule (ce que j'ai écrit dans la macro d'ailleurs...) alors que je souhaiterais seulement avoir les valeurs des cellules ne correspondant pas à des onglets présents...

Merci pour votre aide !

Sub testdpt()
Dim Sh As Worksheet
Dim nom As String
Dim c As Range
Dim sel As Range

Set Sh = Sheets("EtatPresence")

Dim DernLigne As Long
DernLigne = Sh.Range("C" & Rows.Count).End(xlUp).Row

MsgBox (DernLigne)

For Each c In Sh.Range("C5:C" & DernLigne)

nom = c.Value

'recherche d'une feuille nommée avec nom
For i = 1 To ThisWorkbook.Worksheets.Count
If ThisWorkbook.Worksheets(i).Name <> nom Then
'si elle est pas présente
MsgBox ("ko" & nom)
End If
Next i
nom = ""

Next c


End Sub
 
Dernière édition:

Patrice33740

XLDnaute Impliqué
Re : Vérification présence onglet avec le nom de cellules dans plage

Bonjour,

Essaies ce code :
Code:
Sub testdpt()
Dim w As Worksheet
Dim r As Range
Dim c As Range
Dim s As String

  Set r = Worksheets("EtatPresence").Range("C5")
  Set r = r.Resize(r.End(xlDown).Row - r.Row + 1)
  For Each c In r.Cells
    Set w = Nothing
    On Error Resume Next
    Set w = Worksheets(c.Value)
    On Error GoTo 0
    If w Is Nothing Then s = s & c.Value & vbCr
  Next c
  If s <> "" Then MsgBox "Manque : " & vbCr & s

End Sub
 

Discussions similaires

Réponses
9
Affichages
301

Statistiques des forums

Discussions
314 644
Messages
2 111 528
Membres
111 189
dernier inscrit
Laurent.