Incrementé une plage a partir d'une cellule numérique

Résolu/Fermé
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022 - 12 févr. 2019 à 18:39
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022 - 16 févr. 2019 à 09:51
Bonjour,

J'ai une cellule 'G11', qui reprends un calcul, donc affiche une valeur numérique.

Je veux qu'a chaque résultat de calcul suivant cette valeur soit affectée a la suite dans une colonne nommé, "C5;C20".

Pour exemple:
Si la cellule "G11" affiche "3", alors "C5" affichera "3"de façon permanente,
et ensuite si la cellule "G11"="10" alors la cellule "C6" affichera "10", et ainsi de suite sur toute la colonne C5;C20. Les cellules de la colonne n'ayant pas d'affection doivent resté vide.

Pour info, je suis arrivé a faire l'inverse, incrémenté une valeur dans une cellule à partir d'une colonne, par la formule

=RECHERCHE(9^9;B5:B20),
Ce que je cherche c'est a faire l'inverse,

Merci à tous ceux qui pourront m'aidé dans cette recherche…

2 réponses

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
13 févr. 2019 à 11:02
Bonjour,

Les formules sont utiles en combinatoire ; là on dirait du séquentiel (tu veux tracer les valeurs consécutives de G11).
Je pense que tu ne peux pas le faire par formules, mais par macro ça doit marcher :
Private Sub Worksheet_Calculate()
        i = 5
        While Cells(i, 3).Value <> ""
            i = i + 1
        Wend
        Cells(i, 3).Value = Range("G11").Value
End Sub


A+
0
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022
14 févr. 2019 à 09:48
Bonjour,
Merci de la solution, ca fonctionne bien mais de manière manuelle.
Est-il possible de passé en mode automatique, c'est a dire.
Dès que la valeur de "G11", est différente il incremente directement sans qu'il y ai besoin de proceder à l'execution de la macro.

Merci de tes infos.
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
14 févr. 2019 à 10:48
Bonjour,

En général, on utilise ce qui est décrit là : https://forums.commentcamarche.net/forum/affich-20778122-macro-lance-au-changement-d-une-cellule-excel pour exécuter automatiquement la macro. La subtilité dans ton cas est que tu ne modifies pas manuellement la valeur de G11. Tu peux partir sur le même principe en utilisant les cellules entrant dans le calcul de G11.

A+
0
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022
14 févr. 2019 à 11:50
Merci de ton retour,
Pour info, je transmet un copier/coller..

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("Feuil2!G11")) Is Nothing Then
Sub Report()
i = 5
While Cells(i, 3).Value <> ""
i = i + 1
Wend
Cells(i, 3).Value = Range("Feuil2!G11").Value
End If
End Sub

Merci de tes conseils, c'est dur-dur...
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
14 févr. 2019 à 13:12
Euh... allez, on va y arriver !
Il y a des problèmes de syntaxe, mais il y a des lueurs d'espoir...
Dans ton message 3, tu indiquais avoir réussi à faire fonctionner le code par appel manuel, c'est pas mal !
Pour qu'elle soit déclenchée automatiquement, je pense qu'il faut une macro événementielle : cf ce cours : https://silkyroad.developpez.com/VBA/EvenementsFeuille/
Si tu changeais manuellement G11, la macro événementielle serait toute trouvée, mais c'est le changement d'autres cellules qui fait évoluer G11.
=> Quelles sont ces cellules ?
=> Ou conserver la trace de la valeur courante de G11 dans une cellule ("mémoire") et pour tout changement dans la feuille on vérifie si G11 a évolué ou non (G11="mémoire" ?)

A+
0
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022
14 févr. 2019 à 15:30
Re, merci de ton retour,

Je te reponds en premier et ensuite je regarderai le lien que tu m'as fait parvenir.
Par avance merci.

Pour répondre à ta demande,

L'explication de mon projet

J'ai appliqué une fonction recherche a la cellule ("Feuil2!G9"), ("=RECHERCHE(9^9;Feuil1!B5:B17)") ce qui me permet d'acrementé manuellement une colone "B5:B17". A chaque nouvelle valeur entrée manuelle cette valeur est soustraite à une valeur en ("Feuil2!E9") ce qui me donne une valeur differente en ("Feuil2!G11").

A chaque nouvelle entrée en B5:B7, le résultat de la cellule ("Feuil2!G11"), sera donc différent, et je veux que chaque valeur de ("Feuil2!G11") soit reporté de manière automatique dans la colonne "C5:C17".

J'ai créé un bouton qui fonctionne bien, lorsque je clique dessus, il increment bien chaque valeur en "C5", "C6", etc... Si je peux faire cette manip de facon automatique, celà serai plus astucieux...

Merci de tes infos.
0
Tony27430 Messages postés 53 Date d'inscription dimanche 4 octobre 2015 Statut Membre Dernière intervention 30 janvier 2022
13 févr. 2019 à 17:01
Bonjour,

J'ai bien recu ta solution, mais je n'est jamais utiliser de macro.

Je viens d'essayer mais il me fait des choses bizarres.
Si tu as l'occasion de m'explique comment on met en place une macro, je reste preneur.

Merci
0