Recherche de cas d'utilisation

Bonjour à tous,

Voilà mon problème j'aimerais adapter une formule Excel à une petite partie de code. Le but de ma formule est de rechercher dans les autres feuilles du classeur si la variable que je recherche est présente dans une certaine plage des autres feuilles (plus clair en ouvrant le fichier joint ). Ma formule fonctionne très bien cependant je n'ai pas un très beau visuel et comme on le sait tous Excel nous limite avec les fonctions SI.

J'ai commencé à écrire un peu de code mais je n'arrive même pas à faire parcourir toutes mes feuilles et encore moins la partie recherche, pour moi il faut faire 2 boucles FOR une qui va parcourir chaque feuille et une qui va me permettre de passer à la case du dessous.

Sub utilisation()
Dim a As Integer
a = 7

Dim x As String

For i = 1 To 100

For j = 1 To 20

'Cells(a + i, 10) = Sheets("CC001").Range("C4")

'Cells(a + i, 10) = "IF(COUNTIF('CC001'!C4:C22,'Saisie des Cotes'!Cells(a + i ,2))>0,"CC001","")"

Next

Next

End Sub

Si jamais vous avez des suggestions je suis preneur.

Merci d'avance

4test.xlsx (11.45 Ko)

Salut,

Voici un code qui devrait répondre à ton attente :

Sub utilisation()
Dim a As Integer, j As Integer, k As Integer

Application.ScreenUpdating = False

Range("D3:D" & Rows.Count).ClearContents

For i = 3 To Range("B" & Rows.Count).End(xlUp).Row
    For j = 1 To Sheets.Count
        For k = 4 To Sheets(j).Range("C" & Rows.Count).End(xlUp).Row
            If Sheets(j).Range("C" & k) = Range("B" & i) And Left(Sheets(j).Name, 2) = "CC" Then
                If Range("D" & i) = "" Then
                    Range("D" & i) = Sheets(j).Name
                Else
                    Range("D" & i) = Range("D" & i) & " - " & Sheets(j).Name
                End If
            End If
        Next k
    Next j
Next i

End Sub

Cordialement.

6test-v1.xlsm (39.75 Ko)

Merci Yvouille c'est exactement ce que je recherchais

Bonsoir,

Bonsoir Yvouille, et meilleurs vœux

Une autre approche, par une fonction personnalisée :

Function Kdu(Cel As Range) As String
Application.Volatile
Dim Sh As Worksheet
Dim C As Range
For Each Sh In Sheets
    If Sh.Name <> "Saisie des cotes" Then
        Set C = Sh.Columns(3).Find(Cel)
        If Not C Is Nothing Then Kdu = Kdu & " ; " & Sh.Name
    End If
Next Sh
If Len(Kdu) > 0 Then Kdu = Right(Kdu, Len(Kdu) - 3)
End Function

Le fichier :

Bonne soirée

Modif : Ajouter "Application.Volatile" afin que les fonctions soient recalculées dès la saisie d'une nouvelle entrée

Après quelques semaines de retard, merci cousinhub.

Rechercher des sujets similaires à "recherche cas utilisation"