Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/10/2011, 10h58   #1
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
Par défaut gestion de 2 scrollbars en simultané

bonjour,

je cherche à géré 2 scrollbars lié l'une à l'autre,mais cela boucle 2 fois, avez-vous une solution afin de ne pas boucler sur la 2emme userform qui elle même pointe sur la première.

dans la userform 2 scrollbar + 2 textbox

Code :
1
2
3
4
5
Private Sub ScrollBar1_Change()
              Me.TextBox1.Value = Me.ScrollBar1.Value
              Me.ScrollBar2.Value = 5
              Me.TextBox2.Value = Me.ScrollBar2.Value
End Sub
Code :
1
2
3
4
5
Private Sub ScrollBar2_Change()
          Me.ScrollBar1.Value = 6 
              Me.TextBox1.Value = Me.ScrollBar1.Value
               Me.TextBox2.Value = Me.ScrollBar2.Value
End Sub
avez-vous une solution?
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 11h17   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour
Peut être il y a plus simple mais en utilisant une variable booléenne globale
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Option Explicit
Dim Manu As Boolean
 
Private Sub ScrollBar1_Scroll()
 
Manu = True
End Sub
 
Private Sub ScrollBar2_Scroll()
 
Manu = True
End Sub
 
Private Sub ScrollBar1_Change()
 
If Manu Then
    Manu = False
    Me.ScrollBar2.Value = 5
End If
Me.TextBox1.Value = Me.ScrollBar1.Value
Me.TextBox2.Value = Me.ScrollBar2.Value
End Sub
 
Private Sub ScrollBar2_Change()
 
If Manu Then
    Manu = False
    Me.ScrollBar1.Value = 6
End If
Me.TextBox1.Value = Me.ScrollBar1.Value
Me.TextBox2.Value = Me.ScrollBar2.Value
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/10/2011, 14h01   #3
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
Par défaut oui et non

Bonjour
oui effectivement cela fonctionne mieux, sans que la boucle interfère,
mais il n'y a pas de mouvement lors des clic à cote du scroll ou sur les flèches.
j'ai rajouté le code suivant afin de palier l’inconvénient:
Code :
1
2
3
4
5
6
7
 
Private Sub ScrollBar1_Enter()
    Manu = True
End Sub
Private Sub ScrollBar2_Enter()
    Manu = True
End Sub
cela est-il judicieux?
cordialement
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 14h15   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Et tu peux même supprimer les 2 sub ScrollBar1_Scroll et ScrollBar2_Scroll
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 08/10/2011, 11h59   #5
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut heu

bonjour mercatog et philippe 77

pour ma part je n'utilise pratiquement plus le "scrollbar1_change"

je préfère le scrollbar1_scroll ce qui rend la chose dynamique

au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 08/10/2011, 14h11   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour Patrick
Citation:
Philippe_77
mais il n'y a pas de mouvement lors des clic à cote du scroll ou sur les flèches.
Et comment faire quand l’utilisateur clique sur les 2 flèches (qui déplacent l’ascenseur) ou à l'intérieur de scrollbar?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/10/2011, 09h27   #7
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
Bonjour

trouvez-ci joint le code avec 2 scrollbar et 2 textbox
limite de scrollbars1 --> 0 à 10
limite de scrollbars2 --> -10 à 0
condition de fonctionnement
si scrollbar1 = 5 --> textbox1 = 5 ; scrollbar2 = -5 ; textbox2 = -5
si scrollbar2 = -6 --> textbox2 = -6 ; scrollbar1 = 6 ; textbox1 = 6
si textbox1 = 2 --> scrollbar1 = 2 ; scrollbar2 = -2 ; textbox2 = -2
si textbox2 = -8 --> scrollbar2 = -8 ; scrollbar1 = 8 ;textbox1 = 8
et ainsi de suite:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
 
Option Explicit
Dim Manu As Boolean
 Private Sub ScrollBar1_Enter()
     Manu = True
End Sub
 
Private Sub ScrollBar1_Scroll()
     Manu = True
End Sub
 
Private Sub ScrollBar2_Enter()
     Manu = True
End Sub
Private Sub ScrollBar2_Scroll()
    Manu = True
End Sub
 
Private Sub ScrollBar1_Change()
If Manu Then
    Manu = False
    Me.ScrollBar2.Value = Me.ScrollBar1.Value * (-1)
End If
Me.TextBox2.Value = Me.ScrollBar2.Value
Me.TextBox1.Value = Me.ScrollBar1.Value
End Sub
 
Private Sub ScrollBar2_Change()
If Manu Then
    Manu = False
    Me.ScrollBar1.Value = Me.ScrollBar2.Value * (-1)
End If
Me.TextBox1.Value = Me.ScrollBar1.Value
Me.TextBox2.Value = Me.ScrollBar2.Value
End Sub
 
 
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.TextBox1.Value < 0 Then Me.TextBox1.Value = 0
    If Me.TextBox1.Value > 10 Then Me.TextBox1.Value = 10
    Manu = True
    Me.ScrollBar1.Value = Me.TextBox1.Value
End Sub
 
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Me.TextBox2.Value < -10 Then Me.TextBox2.Value = -10
    If Me.TextBox2.Value > 0 Then Me.TextBox2.Value = 0
    Manu = True
    Me.ScrollBar2.Value = Me.TextBox2.Value
End Sub
le code fonctionne , sauf si l'on click 2 fois a coté du scroll ou sur les fléches:
- Correcte le premier click
- X click sur le coté ou les fléche du même crollbar, pas de fonctionabilitée.

Avez-vous une solution?
Hormis cette erreur, le code vous parait-il correct?
Meci d'avance
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 17h54   #8
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut re

bonjour

donc si je comprend bien quand une crollbar est a 5 l'autre est a -5
exactement l'inverse

pour cela c'est tout simple
la scrollbar2=la crollbar1-la crollbar1*2

maintenant une scrollbar commence a zero il va te faloir jouer avec un calcul pour que la valeur 0 tombe au milieu de la scrollbar

au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/10/2011, 20h47   #9
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
bonjour

1-Une scrollbar peux commencer de -10 et jusqu'à 0 (faite l'essais svp)

2- quand je déplace cette scrollbar elle m'affiche:
-10; -9; -8; -7; -6; -5; -4; -3; -2; -1 ;0

dans mon exemple le chiffre positif ce transforme en négatif
le simple calcul * (-1) est suffissent pour rendre un chiffre négatif ou positif

sinon effectivement la formule suivante fonctionne:
5 --> 5-(2*5) --> -5
et aussi
-5--> -5 -(2*(-5)) --> 5
donc x --> x-(2*x)--> -x

sinon la question était :
Comment faire fonctionner le code de 9H27 lorsqu'on click plusieurs fois sur la flèche.
Le code fonctionne autant de fois que l'on veux, mais avec un seul click sur les flèches .

à bientôt
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2011, 21h22   #10
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Je ne sais pas ce que tu cherches à faire
Avec 2 textbox et 2 scrollbar en interaction
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Private Sub UserForm_Initialize()
 
With Me.ScrollBar1
    .Min = 0
    .Max = 10
    .LargeChange = 1
End With
With Me.ScrollBar2
    .Min = -10
    .Max = 0
    .LargeChange = 1
End With
End Sub
 
Private Sub ScrollBar1_Change()
 
Me.TextBox1 = Me.ScrollBar1
Me.ScrollBar2 = -1 * Me.ScrollBar1
End Sub
 
Private Sub ScrollBar2_Change()
 
Me.TextBox2 = Me.ScrollBar2
Me.ScrollBar1 = -1 * Me.ScrollBar2
End Sub
 
Private Sub TextBox1_Change()
Dim S As Integer
 
S = Abs(Val(Me.TextBox1))
S = IIf(S > 10, 10, S)
Me.ScrollBar1 = S
If S <> 0 Then Me.TextBox1 = S
End Sub
 
Private Sub TextBox2_Change()
Dim S As Integer
 
S = Abs(Val(Me.TextBox2))
S = IIf(S > 10, -10, -1 * S)
Me.ScrollBar2 = S
If S <> 0 Then Me.TextBox2 = S
End Sub
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 11/10/2011, 09h08   #11
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
bonjour

en fait l'exemple est relatif et est juste pour l'interaction des commandes

je travail en fait sur la surface d'un triangle rectangle ou les donnée sont
-1- l'angle droit a l'origine de abscisse et de l'ordonnée
-2- en x maxi 2500mm , en Y Maxi 2500mm
-3- en x mimi 300mm , en y mini 300mm
si je règle x à 2500 --> y = 300
si je règle y à 2500 --> x = 300
si je règle x à 1000 y peux aller de 300 à 1800 sans modifier x et au dessus diminution de x
avec d'autre critère en fait une usine à gaz.

cela n'est pas très complexe mais ne sert pas à grand chose dans le code qui ne fonctionnais pas avec plusieurs clic sur les flèches.


je pense que non erreur était "Me.ScrollBar1.Value" au lieu de "Me.ScrollBar1"
comme quoi on enlève une petite écharde et tous va mieux.

petite exception:
une condition ne fonctionne pas dans le dernier code, car j'ai affaire à des "bourrains",remplissage des textbox par du texte.

sinon génial, bien vu le coup du IIF

à bientôt
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 18h24   #12
Expert Confirmé
 
Avatar de patricktoulon
 
patrick
Inscription : avril 2009
Messages : 1 829
Détails du profil
Informations personnelles :
Nom : patrick
Âge : 42
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : Bâtiment

Informations forums :
Inscription : avril 2009
Messages : 1 829
Points : 2 857
Points : 2 857
Envoyer un message via MSN à patricktoulon
Par défaut re

bonjour philippe 77

oui tu meme si on peut commencer a -10 on termine a zero

ce qui t'obligera a faire le calcule comme je te l'ai indiqué

de facon que la position zero ce trouve au milieu puisque tu veux aller de -5 a 5

au plaisir quand au clic sur la fleche je ne vois pas ou est ton probleme
et pour le clic sur la scroll mais pas sur le curseur

bon si j'ai bien compris ce que tu cherche a faire
essaie ceci dans un userform avec 2 scroll bar et 2 textboxs
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
'Dans les propriétés
'mettre le max a 50 et le min a -50
'metre la propriété "DELAY " a 10
 
Private Sub ScrollBar1_Change()
    TextBox1 = ScrollBar1 / 10
    ScrollBar2 = -ScrollBar1
End Sub
 
Private Sub ScrollBar1_Scroll()
    TextBox1 = ScrollBar1 / 10
    ScrollBar2 = -ScrollBar1
 
End Sub
 
Private Sub ScrollBar2_Change()
    TextBox2 = ScrollBar2 / 10
    ScrollBar1 = -ScrollBar2
End Sub
 
Private Sub ScrollBar2_Scroll()
    TextBox2 = ScrollBar2 / 10
    ScrollBar1 = -ScrollBar2
 
End Sub
tu aura un step de 0.1 de -5 jusqu'a 5 dans les textboxs et les scrollbar seront dynamiquement inverse l'un a l'autre que ce soit la 1 ou la 2 que tu bouge
au plaisir
__________________
mes fichiers dans les contributions:
mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA
mon nouveau mouse in out pour les boutons dans un userform
mon addin pour prendre un cliché de selection de cellules

si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres
et n'oublie pas de voter
patricktoulon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2011, 20h09   #13
Invité de passage
 
Homme philippe
concepteur R&D Mécanique
Inscription : octobre 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Homme philippe
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : concepteur R&D Mécanique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2011
Messages : 6
Points : 2
Points : 2
bonjour
Trouvez ci-joint le code complet avec la gestion des textbox

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 
Private Sub UserForm_Initialize()
    ScrollBar1.SmallChange = 2
    ScrollBar1.Min = 0
    ScrollBar1.Max = 10
    ScrollBar1.Value = 0
    ScrollBar2.SmallChange = 2
    ScrollBar2.Min = -10
    ScrollBar2.Max = 0
    ScrollBar2.Value = 0
    TextBox1 = 0
    TextBox2 = 0
End Sub
 
Private Sub ScrollBar1_Change()
    TextBox1 = ScrollBar1
    ScrollBar2 = -ScrollBar1.Value
End Sub
 
Private Sub ScrollBar1_Scroll()
    TextBox1 = ScrollBar1
    ScrollBar2 = -ScrollBar1.Value
 
End Sub
 
Private Sub ScrollBar2_Change()
    TextBox2 = ScrollBar2
    ScrollBar1 = -ScrollBar2
End Sub
 
Private Sub ScrollBar2_Scroll()
    TextBox2 = ScrollBar2
    ScrollBar1 = -ScrollBar2
 
End Sub
 
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1 < 0 Then TextBox1 = 0
    If TextBox1 > 10 Then TextBox1 = 10
 
  ScrollBar1 = TextBox1
  ScrollBar2 = -TextBox1
  TextBox2 = -TextBox1
 
End Sub
 
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox2 < -10 Then TextBox2 = -10
    If TextBox2 > 0 Then TextBox2 = 0
    Manu = True
    ScrollBar2 = TextBox2
    ScrollBar1 = -TextBox2
    TextBox1 = -TextBox2
End Sub
je remercie les 2 personnes qui m'ont bien aidé et si cela sert à d'autre un petit "merci" serait le bien venu

je considère cela résolu
philippe_77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h12.


 
 
 
 
Partenaires

Hébergement Web