marco d'incrementation automatique jusqu'a une valeur maximum

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

  • calcul Rw.xlsx
    15.4 KB · Affichages: 72
  • calcul Rw.xlsx
    15.4 KB · Affichages: 58
Dernière édition:

DoubleZero

XLDnaute Barbatruc
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 :)
 

serval

XLDnaute Occasionnel
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
 

DoubleZero

XLDnaute Barbatruc
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 :)
 

serval

XLDnaute Occasionnel
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
 

Si...

XLDnaute Barbatruc
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 :D:D )?
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

  • incrémente si.xlsm
    22.1 KB · Affichages: 46

serval

XLDnaute Occasionnel
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 :(
 

serval

XLDnaute Occasionnel
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
 

serval

XLDnaute Occasionnel
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

  • calcul Rw automatique.xlsm
    26 KB · Affichages: 58
  • calcul Rw automatique.xlsm
    26 KB · Affichages: 57
Dernière édition:

Hieu

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

Salut Serval, le fil,

En partant de ton fichier; je ne trouve pas le Rw, pour le produit 2
 

Pièces jointes

  • calcul Rw automatique_v0.xlsm
    27.2 KB · Affichages: 70

serval

XLDnaute Occasionnel
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
 

Statistiques des forums

Discussions
312 482
Messages
2 088 766
Membres
103 955
dernier inscrit
mikaveli