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