XL 2019 N'afficher que les noms qui ont répondus

Stefano4551

XLDnaute Nouveau
Bonjour la communauté (cela fait longtemps que je n'ai pas eu besoin de ton service :-D)

J'essaye d'alléger la charge de la directrice de l'école de ma fille qui jusqu'à maintenant, fait tout à la main, et forcément, je bloque...

J'ai préparé un fichier pour pointer les commandes et règlements des parents sur différentes activités pour l'année scolaire - et je voulais aussi pouvoir remplir le bordereau de remise en banque (ça, c'est pour la directrice). Les parents envoies la commande papier avec leur règlement - nous réceptionnons - nous pointons.

Mais je ne sais pas comment dire à Excel dans ma feuille "Remise facture école" à partir de B44 : Si dans "Liste de pointage des commandes", tel nom a un règlement d'inscrit, alors, affiche ce nom (idem Banque et Somme) - PUIS, si ce nom a déjà été pointer, ALORS inscrire le suivant...

Suis-je clair dans ma bouteille à la mer ?

Merci par avance à ceux qui me sortiront de ce casse-tête !

(au passage, si vous voulez commander, c'est pour la coopérative scolaire ! :-D )
 

Fichiers joints

chris

XLDnaute Barbatruc
Bonjour

Ton tableau est très inspiré de bordereau Papier

Si c'est plus simple pour eux, admettons car s'il ont 2010 ou plus on peut s'en débrouiller avec PowerQuery pour pouvoir faire les analyses et ventilations sans coder.
Mais il faudrait a minima en faire un tableau structuré donc
  • enlever les colonnes vides
  • enlever les cellules fusionnées : c'est quoi la seconde colonne banque ?
  • avoir des titres exploitables en analyse donc pas 4 lignes, comme Sapin, en-dessous Epicéa coupé, en dessous la taille et en dessous le prix : mettre Epicéa Coupé 100/150 dans une même cellule. Et on oublie Sapins et Chocolats : ou peut jouer sur les couleurs des titres...
    Prévoir une table à part des prix qui valorisera automatiquement par formule la colonne sous-total en fonction des quantités de chaque item (éventuellement tu peux mettre au-dessus des colonnes un rappel du prix unitaire mais qui sera hors tableau, si cela les rassure). On aurait d'ailleurs pu simplifier ta formule actuelle...
Après il sera facile de restructurer le tableau par PowerQuery pour faire les listes des commandes, les remises en banque etc.
Peut-être prévoir une date de remise pour n'extraire à chaque fois que le sous-ensemble
Il faudrait quelques infos sur leur processus d'achat, de perception des commandes et de remise en banque...
 

Robert

XLDnaute Barbatruc
Bonjour Stefano, Chris, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim RF As Worksheet 'déclare la variable RF (onglet Remise de Facture école)
Dim LP As Worksheet 'déclare la variable LP (onglet Liste de Pointage des commandes)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide)

Set RF = Worksheets("Remise Facture école") 'définit l'onglet RF
Set LP = Worksheets("Liste de pointage des commandes") 'définit l'onglet LP
TV = LP.Range("I1:L368") 'définit le tableau des valeurs TV
For I = 4 To 368 'boucle sur toutes les lignes I du tableau des valeurs (en partant de la ligne 4)
    If TV(I, 1) <> "" Or TV(I, 4) <> 0 Then 'si la donnée ligne I colonne 1 de TV n'est pas vide ou si la donnée ligne I colonne 4 de TV n'est pas vide
        PLV = IIf(RF.Range("B44:C44")(1) = "", 44, RF.Range("B43:C43").End(xlDown).Row + 1) 'définit la première ligne vide PLV de la colonne B de l'ongelt RF
        RF.Cells(PLV, "B").Value = LP.Cells(I, "A").Value & " " & LP.Cells(I, "B").Value & " " & LP.Cells(I, "C").Value 'renvoie le nom
        RF.Cells(PLV, "D").Value = LP.Cells(I, "J").Value 'renvoie la banquie
        RF.Cells(PLV, "F").Value = IIf(LP.Cells(I, "I").Value <> "", LP.Cells(I, "K").Value, LP.Cells(I, "L").Value) 'renvoie la valeur
    End If 'fin de la condition
Next I 'prochaione ligne de la boucle
End Sub
 

Stefano4551

XLDnaute Nouveau
Bonjour

Ton tableau est très inspiré de bordereau Papier

Si c'est plus simple pour eux, admettons car s'il ont 2010 ou plus on peut s'en débrouiller avec PowerQuery pour pouvoir faire les analyses et ventilations sans coder.
Mais il faudrait a minima en faire un tableau structuré donc
  • enlever les colonnes vides
  • enlever les cellules fusionnées : c'est quoi la seconde colonne banque ?
  • avoir des titres exploitables en analyse donc pas 4 lignes, comme Sapin, en-dessous Epicéa coupé, en dessous la taille et en dessous le prix : mettre Epicéa Coupé 100/150 dans une même cellule. Et on oublie Sapins et Chocolats : ou peut jouer sur les couleurs des titres...
    Prévoir une table à part des prix qui valorisera automatiquement par formule la colonne sous-total en fonction des quantités de chaque item (éventuellement tu peux mettre au-dessus des colonnes un rappel du prix unitaire mais qui sera hors tableau, si cela les rassure). On aurait d'ailleurs pu simplifier ta formule actuelle...
Après il sera facile de restructurer le tableau par PowerQuery pour faire les listes des commandes, les remises en banque etc.
Peut-être prévoir une date de remise pour n'extraire à chaque fois que le sous-ensemble
Il faudrait quelques infos sur leur processus d'achat, de perception des commandes et de remise en banque...
Salut Chris,
Merci de ta réponse. Hélas, je ne connais pas PowerQuery et vu que l'objectif est d'utiliser les outils présents à l'école sans complexifier la tache de la directrice ou amener un nouvel apprentissage, Je préfère décliner cette solution. Je garde néanmoins ta remarque plus longtermiste sur la construction de tableaux d'item.
 

Stefano4551

XLDnaute Nouveau
Bonjour Stefano, Chris, bonjour le forum,

Peut-être comme ça :

VB:
Sub Macro1()
Dim RF As Worksheet 'déclare la variable RF (onglet Remise de Facture école)
Dim LP As Worksheet 'déclare la variable LP (onglet Liste de Pointage des commandes)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim PLV As Integer 'déclare la variable PLV (Première Ligne Vide)

Set RF = Worksheets("Remise Facture école") 'définit l'onglet RF
Set LP = Worksheets("Liste de pointage des commandes") 'définit l'onglet LP
TV = LP.Range("I1:L368") 'définit le tableau des valeurs TV
For I = 4 To 368 'boucle sur toutes les lignes I du tableau des valeurs (en partant de la ligne 4)
    If TV(I, 1) <> "" Or TV(I, 4) <> 0 Then 'si la donnée ligne I colonne 1 de TV n'est pas vide ou si la donnée ligne I colonne 4 de TV n'est pas vide
        PLV = IIf(RF.Range("B44:C44")(1) = "", 44, RF.Range("B43:C43").End(xlDown).Row + 1) 'définit la première ligne vide PLV de la colonne B de l'ongelt RF
        RF.Cells(PLV, "B").Value = LP.Cells(I, "A").Value & " " & LP.Cells(I, "B").Value & " " & LP.Cells(I, "C").Value 'renvoie le nom
        RF.Cells(PLV, "D").Value = LP.Cells(I, "J").Value 'renvoie la banquie
        RF.Cells(PLV, "F").Value = IIf(LP.Cells(I, "I").Value <> "", LP.Cells(I, "K").Value, LP.Cells(I, "L").Value) 'renvoie la valeur
    End If 'fin de la condition
Next I 'prochaione ligne de la boucle
End Sub
Merci Robert !!!
Cela fonctionne ! Sauf la Somme qui n'affiche rien. Je ne connais rien aux macros et quand j'essaye de trouver l'erreur, mes yeux se croisent...
 

chris

XLDnaute Barbatruc
Bonjour à tous

Salut Chris,
Merci de ta réponse. Hélas, je ne connais pas PowerQuery et vu que l'objectif est d'utiliser les outils présents à l'école sans complexifier la tache de la directrice ou amener un nouvel apprentissage, Je préfère décliner cette solution. Je garde néanmoins ta remarque plus longtermiste sur la construction de tableaux d'item.
Mais tu prends une solution VBA que l'école ne connait sans doute pas plus...
Une fois les requêtes PowerQuery faites c'est tout aussi automatique que du VBA.
 

Stefano4551

XLDnaute Nouveau
Bonjour à tous



Mais tu prends une solution VBA que l'école ne connait sans doute pas plus...
Une fois les requêtes PowerQuery faites c'est tout aussi automatique que du VBA.
Une fois collé avec un bouton, la solution macro me parait moins chamboule tout vu le temps que j'ai à lui accorder et fonctionne. Puis en mettant un peu la tête dedans, j'ai pu l'adapter.
Mais je vais me poser sur cette question de PowerQuery qui met inconnue.

Merci encore d'avoir pris le temps de me répondre !
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas