Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Améliorer une macro

  • Initiateur de la discussion Initiateur de la discussion Hulk
  • 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 !

Hulk

XLDnaute Barbatruc
Hello,

Je reviens vers vous demander de l'aide.

J'ai une macro qui traîne un peu la patte, je me demande si on ne peut pas l'améliorer !?

Au fait c'est assez dur d'expliquer comme ça, le mieux est de regarder le fichier joint, il y a des exemples et des explications j'espère assez claires.

J'espère qu'il y a connaisseurs du monde binaire parmis vous !

Dans l'attente d'une piste, un grand merci d'avance.

Cdt, Hulk.
 

Pièces jointes

Re : Améliorer une macro

Bonjour Hulk

essaye peut être ainsi :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$AJ$3" Then Exit Sub
    Application.EnableEvents = False
    If [AJ3] = 14 Then
        [P1] = 4
        ElseIf [AJ3] = 13 Then [P1] = 8
        ElseIf [AJ3] = 12 Then [P1] = 16
        ElseIf [AJ3] = 11 Then [P1] = 32
        ElseIf [AJ3] = 10 Then [P1] = 64
        ElseIf [AJ3] = 9 Then [P1] = 128
        ElseIf [AJ3] = 8 Then [P1] = 1
        ElseIf [AJ3] = 7 Then [P1] = 2
        ElseIf [AJ3] = 6 Then [P1] = 4
        ElseIf [AJ3] = 5 Then [P1] = 8
        ElseIf [AJ3] = 4 Then [P1] = 16
        ElseIf [AJ3] = 3 Then [P1] = 32
        ElseIf [AJ3] = 2 Then [P1] = 64
        ElseIf [AJ3] = 1 Then [P1] = 128
        ElseIf [AJ3] = 0 Then [P1] = 256
    End If
    Application.EnableEvents = True
End Sub

bonne journée
@+
 
Re : Améliorer une macro

bonjour à tous

en complement de Pierrot93

Private Sub Worksheet_Change(ByVal Target As Range)
If [AJ3] >= 0 And [AJ3] <= 14 Then [P1] = Choose([AJ3] + 1, 256, 128, 64, 32, 16, 8, 4, 2, 1, 128, 64, 32, 16, 8, 4)
End Sub
 
Re : Améliorer une macro

Re,

Trois mots.... Im-Pec-Cable !

J'optais pour la solution à Roland, mais finalement celle de Pierrot est plus longue, mais plus efficace, car pas de "tremblement" de l'écran après calcul.

J'espère que tu ne m'en voudras pas Roland, teste tu verras la différence s tu veux...

En tous les cas, un grand merci à vous Messieurs !

Petite question subsidiaire : J'imagine que vous connaissez le binaire pour répondre aussi rapidement ?

Cdt, Hulk.
 
Re : Améliorer une macro

re:

j'entendais par complément à Pierrot, comme ceci:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$AJ$3" Then Exit Sub
Application.EnableEvents = False
If [AJ3] >= 0 And [AJ3] <= 14 Then [P1] = Choose([AJ3] + 1, 256, 128, 64, 32, 16, 8, 4, 2, 1, 128, 64, 32, 16, 8, 4)
Application.EnableEvents = True
End Sub
 
- 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

Discussions similaires

Réponses
2
Affichages
644
I
Réponses
5
Affichages
1 K
M
  • Question Question
Réponses
5
Affichages
2 K
P
Réponses
9
Affichages
4 K
Polus Cacahus
P
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…