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 !
Ouiiiiiii .... OK ça marche vous êtes un champion de monde !!!!! Mon pb réglé avec une seule ligne ;! Bravo et merciChez moi non, qu'est-ce qui bloque ?
Ah oui vous avez raison, erreur de ma part, ce ne sont pas des tableaux au sens Excel.... sorry. Je vais tenter votre solution. Merci beaucoup !! Sympa.Je n'ai pas vu un seul tableau dans votre classeur, que des plages classiques.
Peut être tout simplement comme ça :
VB:Sub A() ThisWorkbook.Names.Add "BgtAnnée", Activcell.Resize([BgtAnnée].Rows.Count, [BgtAnnée].Columns.Count) End Sub
Hi, Merci pour le commentaire.Hello le fil
par curiosité, je suis allé ouvrir le fichier
je pense qu'il y a du ménage à faire et surement pas mal d'optimisations
1) des modules vides.. ca ne sert à rien et ca "pollue"
2) Vu l'écriture des macros, et la profusion de .select je pense (je me trompe peut etre) que tu es surtout passé par l'enregistreur de macro "pure et simple" ==> aucun jugement ici.. je l'ai fait moi meme quand j'ai débuté
mais c'est pour ca que je dis qu'il y a des optimisations à faire
pour la macro A: à partir de quelle feuille est elle lancée?
tes tableaux 1 et 2: où sont ils ?
et l'utilisation de tables structurées est surement une piste qu'il faut creuser
en leur donnant un nom adéquat (t_2023 t_2024....) la récupération de données sera surement simplifiée
ThisWorkbook.Names.Add "BgtAnnée", [BgtAnnée].Offset(, 12)
Bonjour.
Pour décaler de 12 colonnes à droite la référence du nom "BgtAnnée", pas besoin de sélectionner quoi que ce soit, c'est :.VB:ThisWorkbook.Names.Add "BgtAnnée", [BgtAnnée].Offset(, 12)
Ca bloque quand même...J'ai dit: pas besoin de sélectionner quoi que ce soit préalablement.
De plus la méthode Add ne provoque pas d'erreur si le nom existe déjà, et là, en plus, il faut que ce soit le cas.
Ouiiiiiii .... OK ça marche vous êtes un champion de monde !!!!! Mon pb réglé avec une seule ligne ;! Bravo et merciCa bloque quand même...
Regarde la pièce jointe 1198454
Ouiiiiiii .... OK ça marche vous êtes un champion de monde !!!!! Mon pb réglé avec une seule ligne ;! Bravo et merciChez moi non, qu'est-ce qui bloque ?
Hello Vegendron,Re,
Comme j'avais commencé, et si ca t'interresse
1) on est bien d'accord que le fichier posté est incomplet? (tes macro GB GC GD travaillent sur un graphique 9 que je ne vois nulle part.. et comme tu ne travailles que sur des activesheet, activecell.. on a aucune idée de quelle feuille est censée être utilisée..
2) j'ai supprimé tous les modules vides, et renommés les autres pour qu'on s'y retrouve un peu mieux
3) j'ai créé une macro Gxx qui peut remplacer les 3 GB GC GD: il suffit de saisir l'année
4) j'ai modifié / simplifié les macros pour afficher et masquer les comptes de la feuille Cpts
==> c'est plus propre, pas besoin d'avoir 10000 lignes vides avec une MFC (ca pollue la feuille et ca grossit/ralenti le fichier inutilement
5) macro A
5-1) Dans la feuille Bgt, j'ai créé des tables structurées t_Bgt_2024, t_Bgt_2025.... t_Bgt_2028
elles vont toutes de la ligne 4 à la ligne 28, et ont 12 colonnes (12 mois)
5-2) la macro utlise la bonne table (selon l'année) pour créer la plage nommée "BgtAnnée"
6) macro Saisie_Opération
je ne comprend pas ce qu'elle fait... elle copie colle des données vides...?
7) onglet Projection
j'y vois des tableaux qui vont chercher des données dans la feuille Bgt
j'ai modifié les formules pour qu'elles exploitent les tables structurées que j'ai créées
j'ai aussi créé une macro "Nouvelle projection" qui te permet d'ajouter automatiquement une nouvelle table de projection: suffit de saisir l'année souhaitée
8) macro "Fin_de_Mois"
j'ai juste commencé à modifier le code pour éviter les activate, select...
l'ennui, à force de activecell.offset.select.. on ne sait plus ce que ca fait à quel endroit (à moins de suivre la macro pas à pas),
globalement
les 4 lignes
cellule.select
cellule.copy
cellule.offset.select
cellule.offset.paste
ca se remplace par
Celoffset=cellule.value
et
cellule.select
cellule.copy
cellule.pastespecial values;..
ca se remplace par
cellule=cellule.value
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?
We use cookies and similar technologies for the following purposes:
Est ce que vous acceptez les cookies et ces technologies?