Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Récupérer nom de feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Mondigus

XLDnaute Nouveau
Bonjour à tous!
j'ai un fichier pour traiter mes factures fournisseurs.
Afin de pouvoir réaliser mon TB, j'ai besoin d'une feuille que j'ai appelée "Synthèse" qui regroupe toutes les factures saisies. J'ai donc modifié le code bouton "Ajouter" du formulaire "Saisir facture" afin d'obtenir les factures saisies.
Le petit bémol est que les données sont bien copiées dans la feuille "Synthèse" mais sans le nom de la feuille qui lui corresponde.
Quelqu'un pourrait-il m'aider à trouver ce qui manque à mon code stp.
Merci
 

Pièces jointes

Solution
Bonsoir @Mondigus
  • Pour la première erreur, as-tu créé le tableau structuré "tb_Synthèse" ?
    Place toi sur une ligne de la zone de résultat, onglet Accueil, Mettre sous forme de tableau, choisis un style à ta convenance, vérifie la zone présélectionnée, coche Mon tableau comporte des en-têtes, change le nom du tableau (ici tableau4 par tb_Synthèse) :





  • Pour la seconde : c'est de ma faute, j'avais commencé une modification que je n'ai pas annulée
    Dans la pièce jointe j'ai modifié le code de ce CommandButton "CmdAjout" pour inclure ma macro.
    Voir la pièce jointe (n'oublie pas de modifier le codename de la feuille de synthèse en...
Bonjour
En homogénéisant les noms des tableaux et les titres des colonnes cela se fait sans VBA par PowerQuery en quelques clics
Une simple actualisation suffit ce qui, outre les nouvelles factures, met à jour les retards

 
Bonjour @chris
Ta proposition me semble bon à prendre.
Je vais faire des recherches sur power Quercy et te reviens si je suis bloqué !
Merci pour ton aide.
 
Dernière édition:
Bonne nuit les noctambules,
J'essaie de m'approprier PowerQuery, et je me fais plaisir ...
J'ai normalisé le nom des tableaux et leurs en-têtes par macro (voir le module "mdl_AtTheOne")

@chris, avec l'aide de tes infos, j'ai créé le tableau SynthèsePowerQuery dans la feuille éponyme.
8 étapes m'ont été nécessaires :

Voici ce que donne l'éditeur avancé :
Enrichi (BBcode):
let
    Source = Excel.CurrentWorkbook(),
    #"Lignes filtrées" = Table.SelectRows(Source, each Text.StartsWith([Name], "Fact_")),
    #"Content développé" = Table.ExpandTableColumn(#"Lignes filtrées", "Content", {"N° Facture", "Date facture", "Montant HT", "Montant TTC", "Date échéance", "Retard/Avance", "Etat"}, {"N° Facture", "Date facture", "Montant HT", "Montant TTC", "Date échéance", "Retard/Avance", "Etat"}),
    #"Colonnes renommées" = Table.RenameColumns(#"Content développé",{{"Name", "Fournisseur"}}),
    #"Type modifié" = Table.TransformColumnTypes(#"Colonnes renommées",{{"Date facture", type date}, {"Date échéance", type date}, {"Montant HT", Currency.Type}, {"Montant TTC", Currency.Type}}),
    #"Valeur remplacée" = Table.ReplaceValue(#"Type modifié","Fact_","",Replacer.ReplaceText,{"Fournisseur"}),
    #"Colonnes permutées" = Table.ReorderColumns(#"Valeur remplacée",{"Fournisseur", "N° Facture", "Date facture", "Montant HT", "Montant TTC", "Date échéance", "Retard/Avance", "Etat"}),
    #"Lignes triées" = Table.Sort(#"Colonnes permutées",{{"Date échéance", Order.Ascending}, {"Fournisseur", Order.Ascending}})
in
    #"Lignes triées"

Pour les deux types de synthèse, j'ai lancé la mise à jour pour l'une, l'actualisation pour l'autre, lors de l'activation de la feuille. Pour les 162 lignes les temps sont à peine différents (avec un petit avantage pour la macro, ce qui m'étonne !).

Voilà, voir pièce jointe, j'arrête et je me couche 😵‍💫 🥱😴

Amicalement
Alain
 

Pièces jointes

Bonjour

Nickel

En général j'inverse les actions en commençant par les actions qui peuvent se faire avant le développement du contenu
VB:
let
    Source = Excel.CurrentWorkbook(),
    #"Lignes filtrées" = Table.SelectRows(Source, each Text.StartsWith([Name], "Fact_")),
    #"Colonnes renommées" = Table.RenameColumns(#"Lignes filtrées",{{"Name", "Fournisseur"}}),
    #"Colonnes permutées" = Table.ReorderColumns(#"Colonnes renommées",{"Fournisseur", "Content"}),
    #"Valeur remplacée" = Table.ReplaceValue(#"Colonnes permutées","Fact_","",Replacer.ReplaceText,{"Fournisseur"}),
    #"Content développé" = Table.ExpandTableColumn(#"Valeur remplacée", "Content", {"N° Facture", "Date facture", "Montant HT", "Montant TTC", "Date échéance", "Retard/Avance", "Etat"}, {"N° Facture", "Date facture", "Montant HT", "Montant TTC", "Date échéance", "Retard/Avance", "Etat"}),
    #"Type modifié" = Table.TransformColumnTypes(#"Content développé",{{"Date facture", type date}, {"Date échéance", type date}, {"Montant HT", Currency.Type}, {"Montant TTC", Currency.Type}}),
    #"Lignes triées" = Table.Sort(#"Type modifié",{{"Date échéance", Order.Ascending}, {"Fournisseur", Order.Ascending}})
in
    #"Lignes triées"

Mais c'est détail.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
961
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…