Modification macro "ajout nouelle ligne" dans un tabeau

Bonjour,

J'ai un tableau sur une feuille avec un bouton qui ajoute une ligne à la dernière ligne de celui-ci et qui reprend sans souci différentes formules présente sur celle du dessus.

J'ai recopier cette macro pour un autre tableau en modifiant bien sur le nom du tableau mais celle ci ne fonctionne plus !!

En effet elle ajoute bien une ligne à a fin du tableau mais recopie uniquement la première colonne ou ce trouve une liste de choix mais pas les suivante ou ce trouve différentes formules.

La macro:

Sub ajouterunenfant()

Range("tableau11").Rows(Range("tableau11").Rows.Count).Insert Shift:=xlDown

End Sub

Pourriez vous me dire où cela pêche car ne comprend pas la différence.

Merci par avance

Est-ce que la ligne ajoutée est bien incluse dans le tableau ? à voir facilement si ton tableau est coloré...

Ensuite, est-ce que tes formules font bien appel à MonTablo[MonEnTete] ? ou à l'adresse d'une cellule ?

Bonjour, et merci de s'intéresser a mon souci !!

Oui en effet la ligne ce rajoute bien dans mon tableau en avant dernière position comme souhaité

Concernant les formules:

En colonne A j'ai une liste de choix qui s'ajoute correctement dans la nouvelle ligne mais ensuite

En colonne B j'ai cette formule =SI(A11<>"";RECHERCHEV(A11;Tableau1;3);"")

et colonne C celle ci =SI(A11<>"";RECHERCHEV(A11;Tableau1;4);"")

Formule qui font appel a un autre tableau présent dans mon classeur. Ces sont ces deux formules qui ne ce reproduise pas dans la ligne ajoutée.

Retape la formule en sélectionnant A11 avec la souris, A11 devrait changer ... ou poste le fichier pour t'aider à y voir clair.

Oui je vois ce que tu veux dire ... en cliquant sur A11 je clique sur la cellule corespondante et cela me rajoute le nom du tableau et onglet mais cela fais un truc bizarre !!

Je te met le fichier , sur l'accueil il faut cliquer sur juillet à droite je travail sur cette onglet ce fameux rajout !!!

ce macro fonctionne très bien à 'origine sur la feuille "Vacances d'été"

EDIT: je précise que je suis sous Excel 2007 car la fonction "calendar" n'était plus dispo dans les version ultérieures !!!

20classeur1.xlsm (258.88 Ko)

Ce n'est pas un truc bizarre, c'est normal d'avoir

=SI([@21]<>"";RECHERCHEV([@21];Tableau1;4);"")

cela signifie qu'il va chercher la ligne dans la colonne nommée "21" = c'est bien la valeur de la cellule A10 considérée comme nom de la première colonne de ton tableau.

Et dans ce cas la formule se recopie bien.

Va voir aussi dans l'onglet "vacances d'été", tu as bien des formules du type :

=(NB.SI(Tableau6[@[6-juil.]:[14-août]];"A"))+(NB.SI(Tableau6[@[6-juil.]:[14-août]];"F"))

où @[6-juil.]:[14-août] décrit la plage entre le 6-juil. et le 14-août qui sont les en-têtes des colonnes du tableau.

C'est cela la magie de travailler avec des tableaux.

Ok ok je vois le pourquoi du comment, il faut quoi qu'il arrive si je change ou ajoute une formule je déclare l'ensemble soit feuille cellule et tout en passant directement par le clic sur A11 par exemple et ensuite je clique sur la cellule ce qui met nom de feuille etc ...

Génial !!! chercher toute la nuit mon erreur !!! merci Steelson.

Une autre question alors et pas des moindre !!

Comme tu l'a vu j'ai ce même tableau avec différent mois

En sachant qu'un ajout en septembre il va être à faire sur les autres mois.

Y'a t'il moyen d'ajouter donc une ligne comme on viens de faire, puis de sélectionner le nom dans la liste déroulant en A"" et que cela ce répercute sur les autres mois ?

J'ai fais de nombreuse recherche depuis quelques jours mais trouve pas de macro ou autre qui pourrais m'aider ou m'aiguiller.

Le choix de groupe les feuilles avant saisie ne marche pas de plus et obligerais un utilisateur lambda de faire des manips pas forcement aisées !!!

je regarde ...

au passage, dans l'onglet "Liste des enfants", pour le calcul de l'âge :

=DATEDIF([@[Date de naissance]];AUJOURDHUI();"y")

nadia1235 a écrit :

En sachant qu'un ajout en septembre il va être à faire sur les autres mois.

je suppose qu'il s'agit de la macro

Sub ajouterunenfant()
Range("tableau11").Rows(Range("tableau11").Rows.Count).Insert shift:=xlDown
End Sub

sur quels autres mois ceci doit être ajouté ?

il faudra ajouter autant de lignes que de tableaux, et peut-être nommer les tableaux de façon à les manipuler de façon mnémotechnique !

Clair que ta formule de calcul d'age est moins barbare que la mienne !!! faut que je verif que la tienne prenne bien en compte l'age au jour prêt car sinon dans l'appel journalier si l'age est en année un enfant ayant 5 ans en juillet et 6 ans aout ne ce retrouverais pas dans la bonne tranche d'age si c'est en année serra direct dans les 6 ans en janvier ...

Concernant cet ajout oui il s'agit bien de la macro "ajouterunenfant"

Si on ajoute un enfant en septembre donc dans le tableau septembre j'aimerais que cette ajout ce fasse donc dans les mois jusqu'en juillet fin d'année scolaire donc que la ligne ajoutée en septembre s'ajoute dans les autres tableau avec les colonne donc A B et C identique car le pointage ensuite peu être différent suivant les mois .

J’espère bien m'expliquer et pas être trop compliquée !! C'est un projet démarré pour mon BPJEPS que je prépare depuis juin et ce classeur s'étoffe de jour en jour à mesure que découvre les capacité d'excel !!

nadia1235 a écrit :

Clair que ta formule de calcul d'age est moins barbare que la mienne !!! faut que je verif que la tienne prenne bien en compte l'age au jour prêt car sinon dans l'appel journalier si l'age est en année un enfant ayant 5 ans en juillet et 6 ans aout ne ce retrouverais pas dans la bonne tranche d'age si c'est en année serra direct dans les 6 ans en janvier ...

naissance age

20/08/2000 15

21/08/2000 15

22/08/2000 15

23/08/2000 15

24/08/2000 15

25/08/2000 14

26/08/2000 14

27/08/2000 14

28/08/2000 14

29/08/2000 14

Pour le reste, je vais voir ce soir, le mieux sera de bien nommer les tableaux

J'ai renommé tous les tableaux comme suit TableauMois1, TableauMois2, TableauMois3, ...

Change ta macro comme suit et essaie :

Sub ajouterunenfant()
For i = 1 To 12
Range("TableauMois" & i).Rows(Range("TableauMois" & i).Rows.Count).Insert shift:=xlDown
Next i
End Sub
19bpjeps.xlsm (297.69 Ko)

Je les ai renommé TableauJanvier, TableauFévrier etc !!

oupss chasser croisé !!

dans ce cas, écris :

Sub ajouterunenfant()
Range("TableauJanvier").Rows(Range("TableauJanvier").Rows.Count).Insert shift:=xlDown
Range("TableauFévrier").Rows(Range("TableauFévrier").Rows.Count).Insert shift:=xlDown
' etc.
End Sub

Salut Steelson,

Oui les message c'était croisé donc ai modif a ta façon et pris la version TableauMois1 etc . en considérant Mois 1 septembre étant la rentrée et modif sur 11 Mois n'ayant pas Aout dedans.

Ça tourne impec et ai modif aussi la date anniversaire ça fais plus sérieux ta formule vais passer pour intelligente !!!!

Je regarde la pour utiliser cette formule d'ajout ligne pour que lorsque que j'ajoute un enfant via la liste de choix en septembre il s'ajoute donc pareillement sur les autres mois ainsi il reste qu'a pointer les présence a mesure sans avoir a ajouter mois par mois le même enfant !!!

Nadia,

content que cela te convienne

surtout heureux que tu saches prendre la main = la meilleure façon de progresser

oui c'est clair que je préfère comprendre plutôt que d'avoir tout tout cru bêtement car comme tu a vu y'a pas mal a faire et a apprendre avec mon projet donc utile a l'agréable !!!

Rechercher des sujets similaires à "modification macro ajout nouelle ligne tabeau"