Remplissage tableau sous condition

Bonjour, je cherche à remplir un tableau sous condition:

B5 est la somme de la plage de B6:B....... et C5 est la somme de la plage C6:C...

Cette somme ne peut pas dépasser 35 et j'aimerai que la dernière valeur ici en B10 ou B11 (sachant quelle n'est pas fixe) prenne la valeur pour arriver a la somme de 35.

C'est compliquer à expliquer

ci joint le fichier

Merci

Bonjour,

Clique sur le bouton mise à jour et dis moi si c'est ce que tu recherches.

Cordialement


Je viens de me rendre compte qu'il ne prend pas en compte la dernière ligne.

Remplace le code par ca

Sub MAJ()

Dim i As Integer
Dim j As Integer
Dim Nb_lignes As Integer

Nb_lignes = Cells.SpecialCells(xlCellTypeLastCell).Row

Sheets("Feuil1").Range("B5:U5") = 0

For j = 1 To 20

Set Recherche1 = Sheets("Feuil1").Rows(4).Cells.Find(What:="numéro " & j, LookAt:=xlWhole, LookIn:=xlValues)

    For i = 2 To Nb_lignes - 4 'ICI c'est 4 au lieu de 5
    Recherche1.Offset(1, 0) = Recherche1.Offset(1, 0) + Recherche1.Offset(i, 0)
    Next i
Next j

End Sub

Je ne comprend pas ta question.

Tes valeurs B6,7,8, etc. sont entrées par l'utilisateur? Et tu veux que leur somme ne dépasse pas 35 ET qu'elle soit égale à 35?

Ce que je comprend c'est par exemple : J'entre B6 =20 ; B7=3 ; B8 =9 ; et là il doit me sortir B9 = 3 ? ainsi que B10, 11, 12 etc =0 ? car B6 + B7 + B8 + B9 = 35?

Cordialement,

Danagos.

Oui c'est exactement ça

Regarde si c'est ça que tu cherches. J'ai fais pour les colonnes D et +. Il suffit d'étendre la formule de toute façon. En gros la cellule la plus haute prend la valeur "complémentaire" entre 35 et la somme des valeur au dessus d'elle.

Si tu veux changer la valeur de ta somme tu remplaces "35" par une case qui fixe cette valeur (sans oublier les $ pour pas qu'elle bouge quand tu étends la formule).

Je sais pas si mon explication est claire. Dis moi déjà si ça te convient^^

(Tu entres les valeurs normalement en écrasant la formule, pas de soucis)

Cordialement,

Danagos.

Ok merci je regarde ce soir

Set, RVE mais le problème je veux pas que en rentrant la dernière valeur, je veux pas que ca puisse dépasser 35, au mieux par exemple dans la colonne B, la dernière cellule B10, si je tape une valeur trop grande que ca corrige automatiquement pour avoir la valeur 35 en B5

Merci


Danagos, çq me plait sauf que les valeur ne pleuve pas être negative comme je rentre les valeur ligne par ligne, il faudrait que si je tape par exemple une valeur trop grande, ca corrige automatiquement pour avoir D5=35

merci

Certes j'avais oublié ce détail!

C'est corrigé.

Pour checker si ta dernière valeur fait dépasser 35 à la somme de toutes les valeurs et si c'est le cas, la modifier, il te faut utiliser du VBA. J'ai du mal à voir comment ne pas écraser la formule dans la case sans ça. Dans l'idée c'est entrer une variable MAX=35 et une autre SOMME=somme(D6:D50).

Et avec une boucle tu fais

MAX=35

SOMME=0

i=5

boucle "tant que" SOMME<MAX, i=i+1

SOMME=SOMME+D

si SOMME>MAX, alors SOMME =SOMME-D

D=MAX-SOMME

fin si

fin "tant que"

Je verrai bien un truc dans le genre.

le i c'est ton itérateur qui permet de descendre d'une case à chaque tour de boucle.

la boucle tant que permet de tourner jusqu'à ce que tu ai trouver SOMME = MAX = 35.

après tu peux ajouter une autre boucle pour fixer les valeurs suivante à zéro :

For j=i to j=50, j=j+1

D[j+1]=0

Fin for

Après tu devrais même rajouter une couleur de police ou de remplissage de la cellule modifier pour que tu visualises bien la correction par le programme (si tu en as besoin, sinon pas la peine évidement). En gros rajouter dans le "SI", après D=35-SOMME, D = couleur rouge.

Je suis désolé pour la syntaxe très approximative mais cela fait quelques année que j'ai pas touché à VBA et j'ai pas trop de temps pour m'y replonger mais au moins je te donne une indication sur une solution possible. A toi de voir ce que tu peux en tirer

En espérant t'avoir aider,

Cordialement,

Danagos.

Merci Danagos,RVE m'a fait une macro,

RVE es ce possible que la dernière valeur de chaque colonne se corrige automatiquement si elle est trop important pour que la somme soit exacte?

Merci

Compliqué mais oui.

Beaucoup de variables ^^

c'est super, la colonne fonctionne presque, mais j'aimerai pouvoir aller jusqu'a la ligne 100

ligne ou colonne? Pour les lignes en principe ca devrait être bon.

Les ligne ca fonctionne pas trop

Voilà ce que j'ai fait. Je pense que ça te convient, par contre j'ai fait que pour la colonne D^^

J'ai pas réfléchi à comment généraliser le tout. Il doit y avoir un moyen de gérer la colonne par une variable qui change une fois le traitement fini, pour enchaîner sur la suivante.

Détail, j'insère la valeur "35" à la case D101 pour éviter un "bug" si la somme des valeurs entrées ne fait pas 35. Du coup si aucune valeur n'est écrite en rouge et que tu vois des zéros c'est que tu as pas atteins 35. (J'ajoute une somme en ligne 5 pour que tu visualise le total).

Fais plein de tests sur la colonne D pour voir si tout se passe bien, j'ai peut-être pas pensé à certains cas spéciaux!

Dis moi si ça te convient.

Cordialement,

Danagos.

10numrotation-22-1.xlsm (180.26 Ko)

J'ai ajouté de quoi incrémenter les colonnes. Le traitement se fait de la colonne B à Z et de la ligne 6 à 100. Tu peux toujours changer ces valeurs dans la macros.

Traiter une colonne prend un certain temps, traiter 25 colonnes prend donc plusieurs secondes. Si tu veux traiter moins de colonne, je t'invite à changer la valeur max de "k" dans la boucle For de la macro :

1ère macro : For k=66 to 90

sachant que k=65 représente la colonne A et 90 la colonne Z. Tu peux donc changer en

For k=66 to 73

pour traiter les colonnes B à I.

Cordialement,

Danagos.

C'est hallucinant, tu m'impressionne, j'ai remarqué une chose, par exemple en C11, il faut que je lance deux fois la macro, première fois il corrige le nombre, deuxième fois il corrige la couleur.

J'ai pensé aussi que si une valeur dépasse 35 dans la ligne 5 ça lance automatiquement la mise à jour, comme ca plus besoin de bouton.

Je parle facilement mais j'ai du mal avec les macros, mais j'apprends grâce à vous.

Merci

Le fait que la couleur ne change pas, ça ne vient pas du fait que le dernier chiffre n'est pas corrigé? du style B6=10 B7=10 B8=10 B9=5. Là si tu "MàJ" ça change pas al couleur vu que la valeur en B9 n'est pas changée. Si par contre B9>5 alors oui ça devrait le faire dès le premier coup. C'est pas le cas? :/

Jte remets le fichier que je t'ai envoyé, mis en forme comme le tiens. J'ai pas compris pk ta macro fait pas pareil que la mienne sachant qu'elles sont identiques...

Pour la MàJ automatique je sais pas faire du tout par contre^^ mais appuyer sur un bouton ça va c'est pas trop compliqué

Ca te permet aussi de vérifier que tu as bien entrer les valeurs partout correctement avant de lancer un traitement. Personnellement j'aime bien avoir le contrôle sur ce genre de traitement, mais l'auto est appréciable parfois. Quoi qu'il en soit je ne sais pas comment faire^^

Cordialement,

Danagos.

19numrotation-22-1.rar (161.97 Ko)

Ah c'est normal que la valeur corrigé se mette en rouge? Comment enlever la couleur rouge? j'en ai pas besoin.Merci

J'ai trouvé ca

Private Sub Worksheet_Calculate()

Application.EnableEvents = False

If Range("A4").Value > Range("A5").Value And _

Range("A4").Value < Range("A6").Value Then

Worksheets("Sheet1").Columns("C:E").Hidden = True

End If

Application.EnableEvents = True

End Sub

Ca peux s'adapter à mon cas?

Si B5 à Z5 sont plus grand que 35?

Merci

Rechercher des sujets similaires à "remplissage tableau condition"