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

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
419
Réponses
5
Affichages
198
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…