Microsoft 365 Bug liste de validation sur fichier de menu/Repas

GADENSEB

XLDnaute Impliqué
Bonjour le forum
J'utilise ce fichier pour gérer les repas de famille en avance

Le but du jeu :
Avoir une BDD de choix de repas (entrée.. plat ... dessert....) dans l'onglet BDD
Dans cet onglet chaque partie du repas est décomposé en colonne.

L'idée est que ces colonnes servent de liste de choix à chaque ligne de repas dans l'onglet REPAS

Je refresh cette BDD a chaque saisie d'une nouvelle idée d'une décomposition du repas.

La macro installée fait un refresh des cette BDD en venant prendre chaque valeur unique (colonne D à J) en fonction de la colonne C.


Cette partie là de la Macro semble bien fonctionner.

Mes bugs :

- Le fichier s'ouvre en mode réparation à chaque fois
1726553968880.png

1726554049467.png

avec ce message :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error274320_01.xml</logFileName><summary>Des erreurs ont été détectées dans le fichier « C:\bababa\REPAS V13.xlsm »</summary><removedFeatures><removedFeature>Fonction supprimée: Validation des données dans la partie /xl/worksheets/sheet1.xml</removedFeature></removedFeatures></recoveryLog>



- le tri par ordre alphabétique de chaque colonne de la BDD (hormis le nom du regroupement) ne se fait pas.

- j'ai un bug lié au validation des données a la saisie dans une case en onglet "REPAS"

1726554119086.png


Je pense avoir trouvé c'est surement lié aux restriction sur la validation des données


1726554169151.png


J'ai tenté plein de choses pour bloquer ou supprimer les messages d'erreurs.... mais là je suis perdu


QQn aurait une idée ?

Bonne journée

Sébastien
 

Pièces jointes

  • REPAS V13.xlsm
    40.7 KB · Affichages: 8

Lolote83

XLDnaute Barbatruc
Bonjour @GADENSEB
Voici ton fichier en retour
Chez moi aussi, à l'ouverture, j'ai eu droit au message.
Concernant les listes, dans l'onglet BDD, chaque liste à été définie via un tableau structuré (De fait, le fait de rajouter une nouvelle ligne dans une catégorie (Entrée, Plat, Viande/Poisson, Légume .......) donnera toujours la liste complète. Chaque liste à été définie par un nom défini comme
- Pour les entrée = ND_ListeEntree
- Pour les plats = ND_ListePlat
- Pour les Viande/Poisson = ND_ListeViande etc etc etc

C'est donc ces noms définis qui sont repris dans le tableau REPAS en guise de liste déroulante.

Voir dans le fichier joint, les quelques listes faites (En rouge)
1726560527673.png


Du coup, je ne sais pas a quoi servait les macros (je n'ai pas regardé) mais s'il s'agit uniquement des listes déroulantes, tu ne devrais plus en avoir besoin
@+ Lolote83
 

Pièces jointes

  • Copie de GADENSEB - REPAS V13.xlsm
    42.2 KB · Affichages: 4

GADENSEB

XLDnaute Impliqué
Bonjour
merci de ton retour

C'est super comme cela !!

L'idée des macros est d'auto alimenter les listes en onglets "BDD"


... si je tape une qqc non inscrit dans la liste en onglet BDD, il vient se rajouter à la liste pour la prochaine fois.... etc ....

Exemple : Si en D15 je tape "Bonnes pâtes" j'ai ce message d'erreur
1726563242006.png

car "Bonnes pâtes" ne fait pas partie de la liste "ND_ListeFeculent"

Comment contourner cela ?

merci de votre aide

Seb
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
La liste des ingrédients doit être justement alimentée dans l'onglet BDD dans la partie concernée.
Comme expliqué plus haut, c'est cette liste (les différents tableaux structurés) qui servent à alimenter les différentes zones de liste déroulante.
Donc, si tu dois rajouter un dessert, tu vas dans l'onglet BDD, tableau Tab_Dessert, et tu rajoutes le dessert voulu. Celui-ci sera donc accessible via la liste déroulante.
Donc, à mon sens, plus besoin de macro.
J'espère que ces quelques explications t'auront éclairé.
@+ Lolote83
 

GADENSEB

XLDnaute Impliqué
Bonjour,
C'est parfait d'avoir fait des liste en tableaux structurés.

Un grand merci pour cette construction. ;-)

Je dois avouer que le +++ serait de trouver le moyen (via uniquement l'onglet "Repas") d'alimenter, pour les nouveautés, les tableaux structurés de l'onglet BDD

J'ai restrucuté le fichier en enlevant les macros et en mettant toutes les listes de choix sur les bonnes ligne ;-)

Bonne aprem
Seb
 

Pièces jointes

  • REPAS V14.xlsm
    41.7 KB · Affichages: 4
Dernière édition:

Lolote83

XLDnaute Barbatruc
Re bonjour,
Je dois avouer que le +++ serait de trouver le moyen (via uniquement l'onglet "Repas") d'alimenter, pour les nouveautés, les tableaux structurés de l'onglet BDD
Effectivement, c'est faisable un peu comme tu le décris et ce que ta macro a priori faisait.
Le seul HIC que j'y vois.
Tu saisis dans ton onglet Repas (Catégorie PLAT) le nom "boeuf aux carottes". Cette annotation n'est pas présente et la macro rajoute donc cet item au tableau structuré Tab_Plat. OK, pourquoi pas. Mais plus loin, ou dans l'année, tu viens à saisir "Boeuf Au Carotte". Que va faire la macro ?
"boeuf aux carottes" est différent de "Boeuf Au Carotte" (orthographiquement parlant). Donc ta macro ne trouvant pas ce nouvel item, te le rajoutera dans le tableau structuré. En fait, tu auras donc dans ta liste déroulante une fois "boeuf aux carottes" et une fois "Boeuf Au Carotte".
C'est là, toute la complication de rajouter des items via une macro.
En d'autre terme, si par contre, tu alimentes ton tableau structuré avec des nouvelles valeurs, elles seront lues dans tes zones de liste déroulante. Pas de doublons (orthographiquement parlant bien sûr)
A voir....
D'ailleurs, dans ta base Tab_Plat tu as déjà 2x Lasagnes
1726576657252.png

Chose que tu retrouveras donc dans ta ZLD (Zone de Liste Déroulante)
1726576800581.png

Idem pour Pizzas. Une fois "Pizzas" et une fois "pizzas (anniv' Clémence)". Est-ce utile d'avoir 2 items pour un même plat ?????

Idem pour Fruit VS Fruits dans le tableau Tab_Fruit
1726577039316.png

Cela rejoint exactement ce que j'explique u début concernant la création d'item via macro. Orthographe !!!!!!!

@+ Lolote83
 
Dernière édition:

GADENSEB

XLDnaute Impliqué
oui tu as raison sur le risque de boublons.
Le fichier actuel est un rassemblement de plein de fichier, je n'ai pas encore épuré les datas.

Avec ce que tu as monté, la saisie dans les cases de l'onglet "REPAS"est en saisie semi-auto, ce qui limite les risques de doublons dans le futur

Donc J'avoue que je tenterais bien le coup de la macro ;-)

Qu'est qui n'irais pas dans ma macro initiale ?

Bonne aprem
Seb
 

Lolote83

XLDnaute Barbatruc
Re bonjour,
Par habitude, lorsqu'une solution est apportée, il est opportun de la déclarée en "RESOLUE" (petite coche verte à droite du post qui apporte la solution). Cela permet :
- De savoir qu'une solution a été apportée
- De voir directement (les autres contributeurs) et d'accéder directement à la solution sans avoir à lire l'intégralité du fil de discussion.
@+ Lolote83
 

GADENSEB

XLDnaute Impliqué
ReHello
J'ai testé plein de combines pour faire tourner sur excel 2016
Je ne pige pas ... la fonction Tri bloque

,
1726996919795.png


sur


Code:
.SortFields.Add Key:=Range("Tab_" & xTypePlat & "[[Nom de la colonne à trier]]"), Order:=xlAscending



VB:
Sub RechercheItem(xTypePlat, xChoix)
    Application.ScreenUpdating = False
    '----------------------------------------------------------
    '   Permet de rajouter un item si pas présent dans la liste
    '----------------------------------------------------------
    If IsEmpty(xChoix) = True Then Exit Sub
    For Each xCell In Range("Tab_" & xTypePlat)
        If xCell.Value = xChoix Then
            xExiste = True
            Exit For
        Else
            xExiste = False
        End If
    Next xCell
    If xExiste = True Then
        Exit Sub
    Else
        xNbr = Range("Tab_" & xTypePlat).Count
        Range("Tab_" & xTypePlat)(xNbr + 1, 1) = xChoix
       ' MsgBox "L'article " & xChoix & " a été rajouté dans la base " & xTypePlat, vbInformation, "AJOUT ITEM"
 Call Tri(xTypePlat)
    End If
    Application.ScreenUpdating = True
End Sub

Sub Tri(xTypePlat)
    Application.ScreenUpdating = False
    With ActiveWorkbook.Worksheets("BDD").ListObjects("Tab_" & xTypePlat).Sort
        .SortFields.Clear
        ' Tri sur la première colonne du tableau (changer "A:A" par la colonne souhaitée)
        .SortFields.Add Key:=Range("Tab_" & xTypePlat & "[[Nom de la colonne à trier]]"), Order:=xlAscending
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.ScreenUpdating = True
End Sub

C'est une question de déclaration de variables ?

Bon Dimanche

Seb
 

Discussions similaires

Réponses
1
Affichages
1 K
Compte Supprimé 979
C

Membres actuellement en ligne

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi