Affichage sous plusieurs conditions

Bonjour à tous,

Dans le fichier ci-joint, je souhaite que le choix des valeurs, dans les colonnes G et H de la feuille Expenses, se fasse selon les conditions ci-dessous:

1- Dans le tableau violet (colonne K à N) de la feuille DATA, si les colonnes M et N sont renseignées alors, dès lors que l'on renseigne la colonne D (Company name) de la feuille Expenses, les valeurs du tableau violet s'affichent automatiquement dans les colonnes G et H (de la feuille Expenses).

2- Si les colonnes M et N, du tableau violet de la feuille DATA, ne sont pas renseignées alors on laisse la possibilité à l'utilisateur de choisir les valeurs des colonnes G et H (de la feuille Expenses) avec les listes déroulantes existantes.

Ceci dans le but d'éviter de toujours renseigner manuellement les colonnes G et H (de la feuille Expenses) pour les mêmes dépenses dans le même magasin. Par exemple, chez Vodafone (opérateur téléphonique) cela sera toujours des dépenses de téléphone et rien d'autre.

Est ce que tout est clair?

En vous remerciant d'avance pour votre aide.

35expenses-report2.xlsx (155.20 Ko)

Bonjour

Je pense que ce n'est pas réalisable sans VBA.

Attendons voir..

Cordialement

Bonjour

Un essai

En marge j'aimerai trouver une réponse

Dans la macro que j'ai faite, j'ai été obligé d'inscrire une valeur dans la cellule G, sinon je ne pouvais pas rajouter une liste de validation dans la cellule H

Cette liste dépend de la cellule G, mais lorsque l'on le fait en manuel, et que la case G est vide, on a un message d'erreur style "La source est reconnue comme erronnée, voulez-vous continuer", on répond OUI et c'est bon

Par macro pas trouvé le moyen (testé On error, DisplayAlert) rien n'y fait

Si quelqu'un connait merci à lui

Je poste la macro

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range

  If Not Intersect(Columns("D"), Target) Is Nothing And Target.Count = 1 Then
    If Target = "" Then Exit Sub
    Set Cel = Sheets("DATA").Columns("K").Find(what:=Target, LookIn:=xlValues, lookat:=xlWhole) 'Recherche
    If Not Cel Is Nothing Then                                          ' Trouvé

      With Target.Offset(0, 3)                                          ' Donc en colonne G
        .Validation.Delete                                              ' Supprime la liste
        If Cel.Offset(0, 2) <> "" Then                                  ' Quelque-chose en colonne M en feuille DATA
          .Value = Cel.Offset(0, 2)                                     ' On note ce qui avait en colonne M de la feuille DATA
        Else
          .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                          Operator:=xlBetween, Formula1:="=choix"
' Obligé de mettre un choix en colonne G sinon je ne peux pas placer la liste de validation en colonne H
          .Value = [choix].Cells(1, 1)
        End If
      End With

      With Target.Offset(0, 4)                                          ' Donc en colonne H
        .Validation.Delete                                              ' Supprime la liste
        If Cel.Offset(0, 3) <> "" Then                                  ' Quelque-chose en colonne N en feuille DATA
          .Value = Cel.Offset(0, 3)                                     ' On note ce qui avait en colonne N de la feuille DATA
        Else
          .ClearContents                                                ' On efface ce qui avait dans la colonne H
          .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                          Operator:=xlBetween, Formula1:="=Expense_level_2"
        End If
      End With
    End If
  End If
End Sub

Bonjour,

Merveilleux d'en arriver jusque là. J'étais bien loin d'y arriver...

Lorsque l'on renseigne une cellule de la colonne D (Company name), automatiquement "Auto expenses" s'affiche dans la colonne G alors que dans le tableau violet (feuille DATA colonne M) cette valeur n'est pas indiqué. Est-il possible de modifier cela?

Encore merci pour ce travail. Je suis vraiment impressionné

Bonjour

Si ce nom s'affiche c'est que c'est le 1er nom de ta liste Choix

Cela veut dire que le nom tapé en colonne D n'a aucun choix dans la colonne M, et dans ce cas là je suis obligé d'y placer un nom car sinon la macro refuse de placer une liste de validation en colonne H

Mais c'est vrai que je pourrais l'effacer après la mise en place de la liste de validation en colonne H

Fait dans le fichier joint

Et voilà c'est parfais! un grand merci.

Rechercher des sujets similaires à "affichage conditions"