Microsoft 365 incrémentation d'une feuille masquée

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 !

bruderez

XLDnaute Nouveau
Bonjour

Je recherche à incrémenter via un formulaire de saisie une feuille "ListeAdherent" dans une feuille qui sera masquée . Dans mon fichier l'incrémentation fonctionne quand la feuille n'est pas masquée par contre quand je la masque cela ne marche pas.
 

Pièces jointes

hello

regarde la PJ
alors une première "règle"
les .activates, .select sont à proscrire==>
pour écrire quelque chose dans une cellule, pas besoin de la selectionner

VB:
range("A5").select
selection=5
se remplace par
Code:
range("A5")=5
dans ce cas, range("A5"), c'est la cellule A5 de la page active

on peut dire de mettre 5 dans la cellule A5 d'une autre feuille non active (masquée ou pas)
exemple, tu es sur la feuille 1
Code:
sheets("Feuille2").range("A5")=5

si tu as plein d'opérations à effectuer sur la feuille 2: plutot qu'avoir 50 lignes de codes qui commencent par
sheets("Feuille2")

on peut utliser un raccourci
Code:
With sheets("Feuille2") 'on spécifie qu'on travaille sur la feuille 2 (on se moque de savoir quelle feuille est active à l'écran)
    .range("A5")=5  'on n'oublie pas le point devant range("A5") pour bien signifier qu'on travaille sur la cellule A5 de la feuille2
    .range("A12)="Toto"
end with


Code:
With sheets("Feuille2") 'on spécifie qu'on travaille sur la feuille 2 (on se moque de savoir quelle feuille est active à l'écran)
    .range("A5")=5  'on n'oublie pas le point devant range("A5") pour bien signifier qu'on travaille sur la cellule A5 de la feuille2
    range("A12)="Toto" 'ici.. le point n'est pas mis ==> c'est donc la cellule A12 de la feuille active qui sera remplie
end with

ensuite.. pour ton fichier
dans la feuille d'adhérents, tu as déjà mis les données sous forme de TableStructurée.. c'est très bien
manque juste de lui donner un nom sympa/explicit ==> j'ai mis t_Adhérents

dans le code VBA, une TS = ListObjects

l'avantage de la TS, c'est que tu n'as plus à t'occuper de la mise en forme des nouvelles lignes.. la TS s'en charge
idem pour les formules
 

Pièces jointes

Bonjour

Quand on utilise des tableaux structurés, il faut
  • les nommer explicitement et non garder le nom auto (de même qu'on ne conserve pas Classeur1 ou Feuil1
  • utiliser le VBA adapté à ce type d'objet
Il y a des erreurs dans les formules de ton tableau d'adhérents : il semble que tu aies supprimé des colonnes...
La cellule Dons du formulaire étant formatée en date j'ai saisi des dates mais il y avait une formule en erreur dans le tableau cible...

EDIT : la réponse de vgendron, que je salue, n'était pas affichée quand j'ai fini de répondre... mais je vois que nos codes et notre logique sont très proches...
 

Pièces jointes

Dernière édition:
il suffit de modifier le point d'insertion de la ligne
pour ma solution
VB:
TS.ListRows.Add 1 'on ajoute une ligne à la table
    LastLine = 1 'numéro de la dernière ligne qui vient d'etre ajoutée==elle est vide

pour celle de Chris, Hello
Code:
j = TS.ListRows.Add(1).Index

et un peu de lecture ici
 
- 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
350
Retour