Formule avec condition

Bonjour,

je me présente je m'appelle maxime. Débutant en Excel et souhaitant progresser.

Je suis en train de créer un tableau pour le boulot. Ma formule ne fonctionne pas, donc je m'en remet à votre savoir.

je cherche une formule qui :

- cherche sur une plage de cellules un nom. si le nom y est, faut chercher sur une autre plage de cellules un mot, et si les deux conditions sont réunis mettre la valeur d'une cellules sinon rien.

la où je cale c'est que je fais une formule avec "Si(et" mais j'ai une erreur car je ne peux pas mettre une plage de cellules.

J'espère que je me suis bien exprimé.

Merci à vous

Bonjour,

Et si vous nous mettiez un fichier (sans données confidentielles) à disposition, on pourrait peut-être vous aider.

Cdlt

oui, bien sur. désolé.

la formule ça serait de chercher dans la plage bleu un nom. si le nom y est, identifié le thème (orange), puis mettre en face du nom la durée (en vert).

merci de votre aide

9fmpa-cahier.xlsx (15.12 Ko)

C'est pas clair, mettez un exemple concret.

j'aimerais trouver une formule qui remplisse les colonnes P ou Q avec la valeur de la celulle A6, lorsque je rempli la plage participant (bleu) et le thème. les colonnes P et Q se remplissent sur la ligne de celui qui a participé avec la cellule A6 (c'est une durée).

dur d'expliquer

merci

4fmpa-cahier.xlsx (15.22 Ko)

Désolé, mais je ne vois pas le rapport avec l'heure en A6, il faudrait que vous mettiez en colonne P et Q quelques résultats attendus (pour les 3 premiers par exemple)

j'ai rempli le fichier au maximum, je comprend que vous n'arrivez pas a comprendre.

chaque fois qu'il y a une formation, un responsable doit remplir une ligne de la feuille "FFEN (date, horaire duree, noms des participants, le thème de la formation).

Dans la feuille "Tableau résumé" j'aimerais qu'il reprenne ce que chaque personnel a fait comme formation et leur durée.

j'espère que vous comprendrez mieux.

merci

8fmpa-cahier.xlsx (20.78 Ko)

Bonsoir,

Voici le fichier, il suffit de cliquer sur le bouton "Comptage".

Cdlt

nickel merci c'est exactement ça.

pouvez vous m'expliquer comment vous avez fait car je dois le faire sur d'autres feuilles. ou me dire comment ça s'appelle et je ferais une recherche.

merci beaucoup

bonsoir

donc un essai intégralement automatisé sans VB

cordialement

11alphamaxou.xlsx (35.66 Ko)

Bonjour,

nickel merci c'est exactement ça.

pouvez vous m'expliquer comment vous avez fait car je dois le faire sur d'autres feuilles. ou me dire comment ça s'appelle et je ferais une recherche.

merci beaucoup

pouvez vous m'expliquer comment vous avez fait, Oui, c'est fait avec une macro en VBA, mais si vous me le demandez, c'est que vous ne devait pas connaître.

car je dois le faire sur d'autres feuilles. du même classeur?

Tout d'abord: Vos listes de noms ne correspondaient pas entre la feuille "FFEN" et la feuille "Tableau résumé", dans la première, les prénoms étaient inscrits qu'avec les initiales , alors que dans la deuxième , les prénoms étaient en entier; il faut que les 2 listes soient identiques. j'ai donc modifié la 2ème. Donc, pour les autres feuilles, le problème se représentera-t-il ?

Conclusion: il serait plus judicieux de mettre le fichier à disposition avec quelques feuilles pour que je puisse vous le faire.

Cdlt

Merci tulipe_4

Pour Arturo83 je connais un peu la basse de la macro , est ce que tu t'es servi de la formule RECHERCHEV??.

Pour mon classeur je vais essayer de le finir en entier puis je le remettrais.

je reviens vers vous

merci encore

bonjour

voila j'ai quasiment fait le plus gros du classeur.

Désolé Arturo83 j'ai du effacer ce que tu avais fait.

J'ai créé une feuille "formulaire". Quand elle est rempli, elle incrémente le feuille "liste des manœuvres".

J'ai créé une feuille tableau, avec dedans un tableau avec tout les noms.

j'aimerais que ce tableau se remplisse tout seul lorsque l'on ajoute une manœuvre.

même idée que le précédent tableau, il faudrait que le tableau soit rempli avec la durée de la manœuvre. Il y a plusieurs thème (ETEX, SMS,EMV,...), chaque thème je les ais séparé en deux. c'est à dire exemple : ETEX "FMPA 2024" ou ETEX autres.

je pensais partir sur la formule RECHERCHEV, mais je n'y arrive pas.

merci de votre aide je cale, pas assez de connaissances.

autre info j'ai ma liste de personnel qui change parfois 2 ou 3 noms par semestre

Bonsoir,

Voila la modif, j'ai mis un bouton à part sur le formulaire, mais vous pouvez appeler cette macro à partir de la vôtre.

Cdlt

j'ai ouvert, mais cela ne fonctionne pas. mon bouton ne fonctionne plus et a chaque fois que j'appuie sur le votre les durées changent.

comment vous faites pour dire d'aller incrémenter le tableau?

j'essaye de mettre la formule somme.si.ens mais j'ai une erreur. je cale

Bonjour,

Ne vous obstinez pas à mettre une formule, il faut passer par du code VBA.

J'ai repris le fichier et agrémenté le code de commentaires pour que vous puissiez comprendre comment cela fonctionne.

Le code de votre macro est issu de l'enregistreur de macro, mais il ne faut pas le conserver tel quel, beaucoup de lignes inutiles et les "Select" nuisent à l'efficacité de la lecture du code et à sa vitesse d'exécution.

En lisant le code fourni, peut-être que cela vous aidera à corriger le votre, du moins, essayez.

Le fichier:

le code avec commentaires (pour accéder au code, faire ALT + F11, le code est dans le module 1):

Sub Comptage()
    'déclaration des variables
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f2 As Long, i As Long, j As Long
    Dim Duree As Date
    Dim Theme As String, AutreTheme As String, Init_Theme As String, Init_AutreTheme As String
    Dim DeuxPoints_Theme As Long, DeuxPoints_AutreTheme As Long

    Application.ScreenUpdating = False 'Empêche les rafraichissements de l'écran lors de l'exécution du code, et augmente la vitesse d'éxcution
    Set f1 = Sheets("Formulaire") 'attribution de la variable f1 )à la feuille "Formulaire"
    Set f2 = Sheets("Tableau ") 'attribution de la variable f2 )à la feuille "Tableau"
    DerLig_f2 = f2.Range("B" & Rows.Count).End(xlUp).Row 'recherche la dernière ligne de f2

    Duree = f1.Cells(13, "D") 'on récupère la valeur de la durée
    Theme = f1.Cells(16, "D") 'on récupère la valeur du thème
    'si "Theme" est vide alors on va lire "Autre theme"
    If Theme = "" Then GoTo Autre_Theme
    DeuxPoints_Theme = InStr(1, Theme, " :", 1) 'on recherche la position des ":"  dans le nom de "Theme"
    Init_Theme = Left(Theme, DeuxPoints_Theme - 1) 'on ne conserve que la partie gauche de theme (tout ce qui est avant les 2 points ":")

Autre_Theme:
    AutreTheme = Trim(f1.Cells(19, "D")) 'on récupère la valeur de l'autre thème
    'si "Theme" est vide alors on va lire "Controle_Présence_Themes"
    Init_AutreTheme = Trim(AutreTheme) 'on supprime les espaces inutiles dans AutreTheme

Controle_conformité:
    If Theme = "" And AutreTheme = "" Then
        MsgBox "Les cellules ""Theme"" et ""Autre theme"" sont vides" 'contrôle la présence de thème ou d'autre thème
        Exit Sub 'si absence des 2, alors on sort du programme
    ElseIf f1.Cells(9, "D") = "" And f1.Cells(11, "D") Then 'contrôle de la présence des horaires de début et de fin
        MsgBox "Les horaires de début et de fin ne sont pas remplis sont vides"
        Exit Sub 'si absence des 2, alors on sort du programme
    ElseIf f1.Cells(5, "F") Then ' contrôle la présence du premier participant
        MsgBox "il n'y a pas de participants"
        Exit Sub 'si absence du premier participant, alors on sort du programme
    End If

    For i = 5 To 13 Step 2 'de la ligne 5 à 13 en sautant 1 ligne sur 2
        For j = 6 To 10 Step 2 'de la colonne 6 à 10 en sautant 1 colonne sur 2
            If f1.Cells(i, j) <> "" Then 'si la cellule traitée n'est pas vide, alors:
                Lig = Application.Match(f1.Cells(i, j), f2.Range("B1:B" & DerLig_f2), 0) 'on recherche le nom du participant en cours de lecture dans f2, on récupère son N° de ligne
                Select Case Init_Theme 'selon la valeur du "Theme" (uniquement la partie gauche avant les 2 points)
                    Case Is = "ETEX" 'si c'est ETEX,
                        f2.Cells(Lig, "C") = f2.Cells(Lig, "C") + Duree 'dans f2, dans la colonne correspondant à ETEX en "FMPA2024", on ajoute la durée on contenu de la cellule
                    Case Is = "SMS"
                        f2.Cells(Lig, "E") = f2.Cells(Lig, "E") + Duree
                    Case Is = "EMV"
                        f2.Cells(Lig, "G") = f2.Cells(Lig, "G") + Duree
                    Case Is = "PPBE"
                        f2.Cells(Lig, "I") = f2.Cells(Lig, "I") + Duree
                    Case Is = "SR"
                        f2.Cells(Lig, "K") = f2.Cells(Lig, "K") + Duree
                    Case Is = "MEA"
                        f2.Cells(Lig, "M") = f2.Cells(Lig, "M") + Duree
                    Case Is = "FDFEN"
                        f2.Cells(Lig, "O") = f2.Cells(Lig, "O") + Duree
                End Select
                Select Case Init_AutreTheme 'selon la valeur de "AutreTheme"
                    Case Is = "ETEX" 'si c'est ETEX,
                        f2.Cells(Lig, "D") = f2.Cells(Lig, "D") + Duree 'dans f2, dans la colonne correspondant à ETEX dans "Autre", on ajoute la durée on contenu de la cellule
                    Case Is = "SMS"
                        f2.Cells(Lig, "F") = f2.Cells(Lig, "F") + Duree
                    Case Is = "EMV"
                        f2.Cells(Lig, "H") = f2.Cells(Lig, "H") + Duree
                    Case Is = "PPBE"
                        f2.Cells(Lig, "J") = f2.Cells(Lig, "J") + Duree
                    Case Is = "SR"
                        f2.Cells(Lig, "L") = f2.Cells(Lig, "L") + Duree
                    Case Is = "MEA"
                        f2.Cells(Lig, "N") = f2.Cells(Lig, "N") + Duree
                    Case Is = "FDFEN"
                        f2.Cells(Lig, "P") = f2.Cells(Lig, "P") + Duree
                End Select
            End If
        Next j
    Next i
    f2.Select 'on sélectionne la feuille f2
    'on libère la mémoire
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

merci pour l'explication.

le bouton ne marche pas il marque une erreur.

Autre info, lorsque j'ajoute une manœuvre, elle va se recopier dans la feuille liste de manœuvre, puis le tableau se rempli à partir de la liste de manoeuvre. c'est possible?

Bonsoir,

le bouton ne marche pas il marque une erreur. Quelle erreur?

*********************************************************************************************

Autre info, lorsque j'ajoute une manœuvre, elle va se recopier dans la feuille liste de manœuvre, puis le tableau se rempli à partir de la liste de manoeuvre. c'est possible?

Pas compris le sens de la phrase, si je comprends bien l'utilisation de votre fichier. Vous devez remplir la feuille "Formulaire " puis cliquer sur le bouton "pour ajouter une manoeuvre", c'est bien cela? Alors que vient faire ceci: puis le tableau se rempli à partir de la liste de manoeuvre

[s=co-548dd4][/s]

Rechercher des sujets similaires à "formule condition"