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

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

  • test.xls
    31.5 KB · Affichages: 98
  • test.xls
    31.5 KB · Affichages: 105
  • test.xls
    31.5 KB · Affichages: 106

mromain

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

Nagrom

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

mromain

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

Discussions similaires

Réponses
26
Affichages
378
Réponses
5
Affichages
180

Statistiques des forums

Discussions
312 195
Messages
2 086 078
Membres
103 112
dernier inscrit
cuq-laet