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

Vérifier l'existence d'une valeur dans un classeur et l'existence d'une feuille

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

Nagrom

XLDnaute Occasionnel
Bonjour,

Dans le classeur ci-joint la première feuille intitulée "Table" contient un tableau avec des noms. Je souhaiterai qu'une macro réalise la fonction suivante:

- Chercher dans les feuilles 1, 2 et 3 si une cellule contient un des nom du tableau.
- Si oui, vérifier si une feuille du classeur porte le même nom que celui de la personne
--> Si oui, inscrire "ok" à côté du nom dans le tableau de la feuille "Table"
--> Si non, inscrire "ko" à côté du nom dans le tableau de la feuille "Table"

J'ai fait une ébauche de la macro, mais il y a un soucis.

Merci pour votre aide.
 

Pièces jointes

Re : Vérifier l'existence d'une valeur dans un classeur et l'existence d'une feuille

bonjourNagrom,

à tester :

Code:
Sub test()
Dim i As Integer, existe As Boolean, noFeuilleRecherche As Integer, celluleValeur As Range, feuille
With ThisWorkbook.Sheets("Table")
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        existe = False
        For noFeuilleRecherche = 1 To 3
            Set celluleValeur = Nothing
            Set celluleValeur = ThisWorkbook.Sheets(CStr(noFeuilleRecherche)).Cells.Find(what:=.Cells(i, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not celluleValeur Is Nothing Then existe = True
        Next noFeuilleRecherche
        If existe Then
            .Cells(i, 2).Value = "KO"
            For noFeuilleRecherche = 1 To ThisWorkbook.Sheets.Count
                If ThisWorkbook.Sheets(noFeuilleRecherche).Name = .Cells(i, 1).Value Then .Cells(i, 2).Value = "OK"
            Next noFeuilleRecherche
        End If
    Next i
End With
End Sub

a+
 
Re : Vérifier l'existence d'une valeur dans un classeur et l'existence d'une feuille

J'aurais encore une question, si les feuilles intiulés 1, 2 et 3 sont renommés Lun, Mar et Mer, le code ne marche plus malgré que j'ai modifié la ligne suivante:

Code:
For noFeuilleRecherche = Lun To Mer

Faut-il écrire le nom des feuilles différemment quand il ne s'agit pas de chiffre?

Merci
 
Re : Vérifier l'existence d'une valeur dans un classeur et l'existence d'une feuille

re,

voici la macro modifiée :

Code:
Sub test()
Dim i As Integer, existe As Boolean, noFeuilleRecherche As Integer, celluleValeur As Range

Dim feuilles(3) As String
feuilles(1) = "Lun"
feuilles(2) = "Mar"
feuilles(3) = "Mer"

With ThisWorkbook.Sheets("Table")
    For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
        existe = False
        For noFeuilleRecherche = 1 To UBound(feuilles)
            Set celluleValeur = Nothing
            Set celluleValeur = ThisWorkbook.Sheets(feuilles(noFeuilleRecherche)).Cells.Find(what:=.Cells(i, 1).Value, LookIn:=xlValues, lookat:=xlWhole)
            If Not celluleValeur Is Nothing Then existe = True
        Next noFeuilleRecherche
        If existe Then
            .Cells(i, 2).Value = "KO"
            For noFeuilleRecherche = 1 To ThisWorkbook.Sheets.Count
                If ThisWorkbook.Sheets(noFeuilleRecherche).Name = .Cells(i, 1).Value Then .Cells(i, 2).Value = "OK"
            Next noFeuilleRecherche
        End If
    Next i
End With
End Sub

a+
 
- 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
3
Affichages
266
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…