marco d'incrementation automatique jusqu'a une valeur maximum

  • Initiateur de la discussion Initiateur de la discussion serval
  • Date de début Date de début

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 !

serval

XLDnaute Occasionnel
Bonjour,

j'ai fait un post pour calculer une valeur acoustique et apres avoir relu 2 ou 3 fois le sujet, je me suis rendu compte que tout cela pouvait ce resumer de la maniere suivante:
il faut augmenter la valeur d'une cellule (initialement à 0), par pas de 1, afin qu'une somme d'autre cellules ne depasse pas 32.

afin que ce soit plus clair, je vous joints un fichier.

merci de votre aide
FAb
 

Pièces jointes

Dernière édition:
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Bonjour, serval, le Forum,

Comme ceci ?

Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal c As Range, Cancel As Boolean)
    Cancel = True
    If c.Address = "$D$12" Then
        If Range("d14") < 32 Then
            c = c + 1
        Else
            c = c
        End If
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("d14") > 32 Then With Range("d12"): .Value = .Value - 1: End With
End Sub

A bientôt 🙂
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Hello 00

j'ai mis une forme dans ma feuille excel, j'ai copié ta macro dans le mode VBA et je l'ai affectée a la forme sur la feuille excel mais ca ne fonctionne pas.

est-ce une macro automatique? comment fonctionne-t-elle?

FAb
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Re-bonjour,

...j'ai mis une forme dans ma feuille excel, j'ai copié ta macro dans le mode VBA et je l'ai affectée a la forme sur la feuille excel mais ca ne fonctionne pas... est-ce une macro automatique...

Les codes (événementiels) doivent être logés dans le module de l'onglet "Calcul Rw".

Nul besoin de forme ou bouton : un simple clic double en d12 suffit... Si j'ai bien compris le besoin !

A bientôt 🙂
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

ok, viens de de mettre le code dans le module de l'onglet "Calcul Rw" et ca marche tout de suite mieux!!!! 🙂

actuellement, il faut double cliquer plusieures fois jusqu'a la valeur maxi où là, la macro bloque. serait-il possible de lancer la macro et qu'elle incremente automatiquement jusqu'à la valeur maxi?

FAb
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

salut

Re-bonjour,
Je sais comment procéder.
A bientôt 🙂

comme ceci ÓÒ (du moins avec que j'ai cru comprendre 😀😀 )?
Code:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
  If R.Address <> "$D$12" Then Exit Sub
  R = 0
  Do While [D14] < 26
    R = R + 1
    Application.Wait (Now + TimeValue("0:00:01")) 'tempo pas nécessaire
  Loop
  R(1, 2).Select
End Sub

J'ai mis un tempo de 1 S seulement pour voir.
 

Pièces jointes

Re : marco d'incrementation automatique jusqu'a une valeur maximum

Merci Si... pour ta réponse.

je l'ai colée dans le code de la page. j'ai donc maintenant:
Private Sub Worksheet_SelectionChange(ByVal R As Range)
If R.Address <> "$D$12" Then Exit Sub
R = 0
Do While [D14] < 26
R = R + 1
Application.Wait (Now + TimeValue("0:00:01")) 'tempo pas nécessaire
Loop
R(1, 2).Select
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("d14") > 32 Then With Range("d12"): .Value = .Value - 1: End With
End Sub

ca fonctionne bien sauf que des fois ce ne s'arrete pas qd D14 > 0. Deplus, maintenant, des qu'on selectionne la cellule D12, la macro se lance. il est donc plus possible de modifer la valeur d'origine 🙁

Snifffre 🙁
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Bonjour,

j'ai trouvé une méthode pas trop dans les regles à mon avis: copier 10 fois la formule de 00 dans le code... je trouve ca bof comme solution 🙁

il faudrait en fait juste une solution plus classe pour éviter de copier/coller 10 fois le meme texte. peut-on passer par une boucle?

FAb
 
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Bonsoir Pierrejean,

merci pour ton fichier 'test', ca fonctionne super bien!

je viens de me rendre compte qu'il est possible d'avoir des facteurs de décallage négatifs. J'ai analysé la condition que l'on pourrait rajouter pour couvrir tous les cas:

Si la somme des valeurs de C8 à R8 est > à la somme de C7 à R7 alors, on utilise la fonction telquel
Si la somme des valeurs de C8 à R8 est < à la somme de C7 à R7 alors, on utilise la fonction telquel mais avec un pas de décallage négatif en partant de 0

je pense qu'avec la comdition sur la somme on couvre l'ensemble des situations
est-ce que vous pensez que c'est jouable de rajouter ca dans la macro?

j'ai remis le fichier avec 3 nouveaux cas de produits pour tester que la macro fonctionne. j'ai rajouté en bout de tableau les Rw que l'on doit trouver 😉

merci de votre aide
FAb
 

Pièces jointes

Dernière édition:
Re : marco d'incrementation automatique jusqu'a une valeur maximum

Je soupsonne qu'on ai oublié un case dans la macro:
on a mis la condition pour la somme des écarts <32 et >32, or on n'a pas pris en compte la possibilité que la somme somme soit egale à 32. il faudrait pê remplacer les >32 et <32 par de >=32 et <=32? qu'en pensez-vous?

autre chose, comment remplacer dans le code VB "Range("s8") - Range("s7")" par "somme des valeurs de C8 à R8 - à la somme de C7 à R7". je pense qu'il serait plus simple de travailler avec la somme des cellules car ca evierait de faire la somme dans la feuille XL.

merci beaucoup, on touche au but!!! 🙂
FAb
 
- 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
Retour