Un si à plusieurs conditions

Bonjour à tous,

C'est sans doute un cas déjà traité mais je n'ai pas trouvé de solutions... Je pense que seul un code VBA peut m'aider (ou une fonction SI mais je ne crois pas...)

J'aimerai que dans la colonne H s'affiche les noms lorsque la cellule de la colonne F = valeur cellule colonne D.

Ex (via le fichier joint ) : En H5, il doit y avoir marqué "Espesson Duval Bonte"

Je suis à votre dispositions si vous ne comprenez pas ce que je souhaite !

Merci dans tous les cas, bonne soirée !

bonsoir

un essai sans vba

19alexis5z.zip (10.18 Ko)

cordialement

Oui, ça me va complétement ! La méthode semble compliquer mais elle marche =)

Par contre, je me suis mal exprimer pour les classes. Il ne s'agit pas du nombre de classe mais du nom de la classe.

Ex : Pour l'étude 1 il doit y avoir inscrit en H5 "CPA CPB CE2B"

Sinon, c'est cela merci ! =)

Bonsoir,

Une autre manière?:

re

bon; eh ben voila

en vba tu aura certainement plus propre (je naurais peut etre pas du mettre de ponctuation; car en concatenant ..........)

cele peut se regler

13alexis5z-2.zip (10.81 Ko)

cordialement

Bonsoir à tous,

en VBA, d'après ce que j'ai compris

Sub essai()
Dim i%, firstAddress$, c As Range
        Application.ScreenUpdating = False
        Range("h5:i12").ClearContents
    For i = 5 To 12
      If Cells(i, "d") = Cells(i, "f") Then
        With Range("d4:d17")
            Set c = .Find(Cells(i, "f"), LookIn:=xlValues, lookat:=xlPart)
          If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                Cells(i, "h") = Cells(i, "h") & Range(c.Address).Offset(0, -3) & " "
                Cells(i, "i") = Cells(i, "i") & Range(c.Address).Offset(0, -2) & " "
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
                '--- supprime le dernier espace de droite
                Cells(i, "h") = Mid(Cells(i, "h"), 1, Len(Cells(i, "h")) - 1)
                Cells(i, "i") = Mid(Cells(i, "i"), 1, Len(Cells(i, "i")) - 1)
          End If
        End With
      End If
    Next i
End Sub

Amicalement

Claude

14alexissz-tablo.zip (19.74 Ko)

Salut le forum

Claude pour supprimer les espaces (TRIM, LTRIM, et RTRIM)

Remplace

Cells(i, "h") = Mid(Cells(i, "h"), 1, Len(Cells(i, "h")) - 1)

Par

Cells(i, "h") =RTRIM(Cells(i, "h")

Mytå

Tout fonctionnent très bien quelques soit les méthodes !

Merci à tous pour votre travail.

Alexis

Salut Mytå,

et en plus, je connaissais ce code !

le Trim est très bien, début + fin

Claude

Re le forum

Juste pour le fun, une fonction personnalisée

Function ConcatCond(PlgConcat As Range, PlgCond As Range, Condition)
  Dim I As Integer
  Dim Temp As String

Application.Volatile

Temp = ""

If PlgConcat.Count <> PlgCond.Count Then _
    ConcatCond = "Erreur": Exit Function

For I = 1 To PlgConcat.Count
    If PlgCond(I) = Condition Then Temp = Temp & PlgConcat(I) & ", "
Next I

If Len(Temp) <> 0 Then Temp = Mid(Temp, 1, Len(Temp) - 2)

ConcatCond = Temp

End Function

Mode d'utilisation en H5 à recopier vers le bas et vers la droite

=ConcatCond(A$5:A$17;$D$5:$D$17;$F5)

Mytå

Rechercher des sujets similaires à "conditions"