Onglet semble inactif

Re Bonsoir.

Voila mon second souci...

Dans mon classeur j'ai 2 onglets

1 nommé "preparation" qui me permet de rentrer qq paramètres

l'autre nommé "semaines" vierge au départ, mais qui se rempli d'un tableau grace à un bouton sur le premier onglet.

si le tableau se crée bien en fonction des critères du premier onglet,

Cet onglet semaine me parait inactif.

en effet je voudrais qu'il me fasse le calcul des cellules D2 F2 H2 lorsqu'une nouvelle valeur est entrée dans les cases.

J'utilise le code suivant

Private Sub Worksheet_Calculate()
Sheets("semaine").Select ' je ne sais pas si c'est nécessaire dans le doute j'ai mis
Sheets("semaine").Activate  ' je ne sais pas si c'est nécessaire dans le doute j'ai mis

Range("Q2").Value = Range("D2").Value + Range("F2").Value + Range("H2").value 

End Sub

lorsque j'entre des valeurs dans les cases D2 F2 ou E2 rien ne se passe.

Le format de ces cellules est le format "standard"

J'utilise aussi un woksheet_calculate sur le premier onglet est ce que ça interfère avec le second ?

je sais qu'il y moyen de le faire en mettant une formule en Q2, mais ça ne m’intéresse pas car ensuite il y aura d'autres variables dont il me faudra tenir compte.

Bonne nuit

Troph

Bonjour,

comme le nom l'indique : Private Sub Worksheet_Calculate()

c'est une macro qui sera "lancée" lorsque la feuille en question sera en "calculate", c'est à dire si dans une cellule vous modifiez une valeur qui fait partie d'une formule....

Si ce n'est juste de la saisie alors elle n'est pas lancée... le mieux est de mettre le code en : Private Sub Worksheet_Change(ByVal Target As Range)

alors le code sera effectué dès qu'une valeur sera modifiée, ajoutée ou supprimée sur le feuille.

@ bientôt

LouReeD

Bonjour

Merci pour ta réponse...

voila pourquoi ça coince.

Autre question plus chiante

Je sais mettre en Q2 via VBA une formule faisant la somme de D2 F2 et H2.

sauf que pour tous les employés (nombre aléatoire) la prochaine formule sera en

Q9 puis Q 16 puis Q23

j'ai donc fait une boucle "for" avec i=0 et "n=7" une constante qui marche très bien pour mettre le cadre des cellules et les couleurs de fond

mais si je mets

range("Q" & 2 + i*n).FormulaLocal= "=somme(D,?;F?;H?)"

comment incrémenter la valeur de ligne sur la formule ???

++

Troph

Bonjour,

Il ne semblait pas (dans ton premier post) qu'une formule soit nécessaire. Tu peux donc faire simplement l'addition des valeurs... le cas échéant avec boucle incluse dans la première pour les colonnes (expacées de 2)...

[NB- Les Select et Activate sont inutile, et de plus pour référer à la feuille dans son module spécifique, tu peux utiliser le mot-clé Me]

Cordialement

désolé j'ai du mal m'expliquer

1*) au départ, je voulais faire en effet faire un calcul via VBA lorsque la valeur d'une cellule était changée.

je voulais faire la somme en Q2 de D2 F2 et H2. si la valeur de ces cellules étaient changée

et ceci pour chaque employé

donc la première somme était en Q2 mais les suivantes en Q9 Q16 Q23 etc... avec à chaque fois un écart de 7

la limite étant le nombre d'employés défini dans une autre case.

et bien sur idem pour les autres cellules D9 F9 H9 ....

2*) Ni arrivant pas j'ai tenté d'intégrer la formule =somme(D2;F2;H2) dans la cellule sauf que là je ne sais pas comment faire pour changer les adresses de cellules ciblées. sans les écrire directement dans le script VBA.

Si vous avez l'une ou l'autre des solution je prends

++

Troph

Je ne vois pas pourquoi tu n'y arriverais pas ! Aucun élément nouveau dans ton post, je ne peux donc que reconduire in-extenso mon post précédent...

Illustre avec un fichier si tu veux qu'on y voit clair... !

Cordialement

Bonjour,

pour reprendre votre idée :

Range("Q" & 2 + i*n).FormulaLocal= "=somme(D,?;F?;H?)"

vous pouvez faire de même avec les autres références :

[code]Range("Q" & 2 + i*n).FormulaLocal= "=somme(D" & 2 + (i*n) & ";F" & 2 + (i*n) & ";H" & 2 + (i*n) & ")"[code]

Je n'ai pas essayé je dois avouer... :mrgreen:

Mais comme dit le Maréchal, il pense, je pense, nous pensons qu'il y a une autre façon de faire plus simple, et avec un fichier joint tout serait plus limpide pour tout le monde... ;-)

Mais quelque fois je me contente de répondre aux demandes des demandeurs sans trop vouloir les changer de direction par rapport à leur façon "de faire"...

@ bientôt

LouReeD

Bonsoir

Je pense qu'en faisant comme vous dites, on obtiendra ceci dans la case sans que i et n soit défini du fait des guillemets

pas testé non plus

=somme(D" & 2 + (i*n) & ";F" & 2 + (i*n) & ";H" & 2 + (i*n) & ")"

je vous mets mon projet en pièce jointe

je veux juste faire la somme des jours travaillé par employés

le nombre d'employés pouvant varier...

++

Troph


Je retire ce que j'ai dit au-dessus, ça marche impeccable !!!

comme quoi sans tester on ne peut rien dire ça m'apprendra...

un grand merci à vous......

++

Troph

6projet-v1.xlsm (50.93 Ko)

N'oubliez pas :

@ bientôt

LouReeD

J'allais dire qu'il n'y avait pas de raison que le code de LouReed [Hello !!!] ne marche pas (sans tester !) (mais à cause des guillemets!! ) mais ça s'est réglé avant.

Bonne soirée.

Rechercher des sujets similaires à "onglet semble inactif"