OVH Cloud OVH Cloud

Possibilité de 2 listes déroulante ?

19 réponses
Avatar
Guy72
Bonjour
Sur la Feuil1, j'utilise une liste déroulante (de1 à 19) en "A1".
Pour ça, j'ai le code suivant.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> Range("A1") Then Exit Sub
Select Case [Target]
Case 1 "à Case 19"
Call iti1 "Call iti19"

Avec en Module 1, la macro les macros suivantes.

Private Sub Couleur(Mini As Long, Maxi As Long, Coul As Integer, Taille As
Integer)
For i = Mini To Maxi
ActiveSheet.Shapes("Line " & i).Select
With Selection.ShapeRange.Line
.ForeColor.SchemeColor = Coul
.Weight = Taille
End With
Next
End Sub

'Remise à zéro des itinéraires
Sub RAZ()
For Each s In ActiveSheet.Shapes
If s.Type = 9 Then
s.Line.Weight = 1.5
s.Line.ForeColor.SchemeColor = 64
End If
Next
End Sub

Sub iti1()
Call RAZ
Call Couleur(1, 39, 0, 4) 'noir
End Sub

Je voudrais (si il est possible) faire sur la même feuille une liste
déroulante de(20 à 30) en "AQ1" et pouvoir l'utilisé avec les macros
suivantes.
Je ne sais pas si j'arrive à me faire comprendre, c'est pas évident à
expliquer ?

Sub iti21 etc......

Cordialement
Guy

9 réponses

1 2
Avatar
Francois L
Bonsoir François
C'est exactement ça qu'il me faut, je suppose que pour la 3ème page il
faudra que je fasse une macro RAZ3.


Re,

Oui bien sur, il te faudra une RAZ3 et modifier la procédure dans la
feuille.

Tout refaire... je réfléchis. Si j'ai une idée, je te le dirai.

--
François L

Avatar
Guy72
d'accord ça marche.
Cordialement
Guy

"Francois L" a écrit dans le message de news:
u5$
Bonsoir François
C'est exactement ça qu'il me faut, je suppose que pour la 3ème page il
faudra que je fasse une macro RAZ3.


Re,

Oui bien sur, il te faudra une RAZ3 et modifier la procédure dans la
feuille.

Tout refaire... je réfléchis. Si j'ai une idée, je te le dirai.

--
François L



Avatar
Francois L
d'accord ça marche.


Bonjour,

Une solution légèrement différente de la précédente et qui sera plus
souple :

Le code de la Feuille devient

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> Range("A1") Then
If Target <> Range("AQ1") Then
Exit Sub
End If
End If
Select Case [A1] 'Liste des itinéraires 1 à 9
Case 1
Call iti1
Case 2
Call iti2
Case 3
Call iti3
Case 4
Call iti4
Case 5
Call iti5
Case 6
Call iti6
Case 7
Call iti7
Case 8
Call iti8
Case Else
End Select
Select Case [AQ1] 'Liste des itineraires 10 à 19
Case 11
Call iti11
Case 12
Call iti12
Case 13
Call iti13
Case Else
End Select
End Sub
'---------------------------------------------------

Une seule macro RAZ de nouveau :

'---------------------------------------------------
'Remise à zéro de tous les itineraires
Sub RAZ()
For Each s In ActiveSheet.Shapes
If s.Type = 9 Then
s.Line.Weight = 1.5
s.Line.ForeColor.SchemeColor = 64
End If
Next
End Sub
'------------------------------------------------------

Les macros iti ne changent pas (elles ne contiennent plus l'appel de la
macro RAZ)

Le principe :
A chaque changement d'une liste, tout est effacé et les itinéraires sont
recréés à partir des valeurs des deux listes (si un itinéraire est à 0,
il n'apparait pas). Ce sera plus souple à gérer.

Le classeur :
http://cjoint.com/?gdjUtbwcuP

--
François L

Avatar
Guy72
Bonsoir François
ok, je vais essayer, ça ma l'air parfait, je peut donc les itinéraires et
ajouter des flèches sans problème.
Merci encore François.
Cordialement
Guy

"Francois L" a écrit dans le message de news:

d'accord ça marche.


Bonjour,

Une solution légèrement différente de la précédente et qui sera plus
souple :

Le code de la Feuille devient

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> Range("A1") Then
If Target <> Range("AQ1") Then
Exit Sub
End If
End If
Select Case [A1] 'Liste des itinéraires 1 à 9
Case 1
Call iti1
Case 2
Call iti2
Case 3
Call iti3
Case 4
Call iti4
Case 5
Call iti5
Case 6
Call iti6
Case 7
Call iti7
Case 8
Call iti8
Case Else
End Select
Select Case [AQ1] 'Liste des itineraires 10 à 19
Case 11
Call iti11
Case 12
Call iti12
Case 13
Call iti13
Case Else
End Select
End Sub
'---------------------------------------------------

Une seule macro RAZ de nouveau :

'---------------------------------------------------
'Remise à zéro de tous les itineraires
Sub RAZ()
For Each s In ActiveSheet.Shapes
If s.Type = 9 Then
s.Line.Weight = 1.5
s.Line.ForeColor.SchemeColor = 64
End If
Next
End Sub
'------------------------------------------------------

Les macros iti ne changent pas (elles ne contiennent plus l'appel de la
macro RAZ)

Le principe :
A chaque changement d'une liste, tout est effacé et les itinéraires sont
recréés à partir des valeurs des deux listes (si un itinéraire est à 0, il
n'apparait pas). Ce sera plus souple à gérer.

Le classeur :
http://cjoint.com/?gdjUtbwcuP

--
François L



Avatar
Guy72
Bonjour François
Je voudrais pouvoir mettre le nom du train à la place du N°.
J'ai remplacé le N°1 par Thalys dans la liste déroulante.
J'ai remplacé le N°1 par Thalys dans Case 1.
Mais cela ne fonctionne pas, il doit certainement y avoir autre chose à
faire ?

Cordialement
Guy


"Francois L" a écrit dans le message de news:

d'accord ça marche.


Bonjour,

Une solution légèrement différente de la précédente et qui sera plus
souple :

Le code de la Feuille devient

'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target <> Range("A1") Then
If Target <> Range("AQ1") Then
Exit Sub
End If
End If
Select Case [A1] 'Liste des itinéraires 1 à 9
Case 1
Call iti1
Case 2
Call iti2
Case 3
Call iti3
Case 4
Call iti4
Case 5
Call iti5
Case 6
Call iti6
Case 7
Call iti7
Case 8
Call iti8
Case Else
End Select
Select Case [AQ1] 'Liste des itineraires 10 à 19
Case 11
Call iti11
Case 12
Call iti12
Case 13
Call iti13
Case Else
End Select
End Sub
'---------------------------------------------------

Une seule macro RAZ de nouveau :

'---------------------------------------------------
'Remise à zéro de tous les itineraires
Sub RAZ()
For Each s In ActiveSheet.Shapes
If s.Type = 9 Then
s.Line.Weight = 1.5
s.Line.ForeColor.SchemeColor = 64
End If
Next
End Sub
'------------------------------------------------------

Les macros iti ne changent pas (elles ne contiennent plus l'appel de la
macro RAZ)

Le principe :
A chaque changement d'une liste, tout est effacé et les itinéraires sont
recréés à partir des valeurs des deux listes (si un itinéraire est à 0, il
n'apparait pas). Ce sera plus souple à gérer.

Le classeur :
http://cjoint.com/?gdjUtbwcuP

--
François L



Avatar
Modeste
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Je voudrais pouvoir mettre le nom du train à la place du N°.
J'ai remplacé le N°1 par Thalys dans la liste déroulante.
J'ai remplacé le N°1 par Thalys dans Case 1.
Mais cela ne fonctionne pas, il doit certainement y avoir autre chose à
faire ?


il faut passer par une table de correspondance : Nom du train <==> itinéraire
voir les fonctions INDEX, EQUIV

Est-ce a dire qu'un itinéraire est affecté à une rame (et une seule ... !!! ???
A mon sens un itinéraire doit pouvoir etre parcouru par plusieures rames..
Est-ce que toutes les rames parcourent tout les sous-ensembles( Gare voyageur,
gare sous-sol, dépot, rampe, réseau externe)
Certains itinéraires doivent etre interdit à certaines rames (longueur de
section)
Est-ce que les parcours sont à sens unique ??? (Quid des 2 boucles de
retournements???)

en aparté : ton réseau est il automatisé autrement qu'avec des interrupteurs
manuels ??
multi-rames simultanées ?
le découpage en voies est insuffisant, gestion des cantons, Block-systems,
sécurité prise en écharpe ?
protection arret en gare,
Automate programmable, Jouef matic, Microprocesseur, DCC ???

selon le réseau proposé au départ, voila vers quoi je m'étais orienté (TCO) , il
y manque encore l'integration des itinéraires tels que françois l'a proposé :
http://cjoint.com/?geoyHZVYfU
ce n'est qu'un rapide premier jet

--
--
@+
;o)))

Avatar
Guy72
Bonjour Modeste

Je ne pensais pas que quelqu'un d'autre était sur le coup.

Je vois que tu en connais un rayon sur le sujet (plus que moi).



Oui effectivement tous les itinéraires peuvent être parcourus par tous les
trains, sauf les voies de garage attitrées à chaque train : de V2 à V8 de
V12 à V19 et V23 et V24.

Donc, la question que j'ai posée n'est pas bonne (c'était juste pour les
voies de garage).



Ce que je veux, c'est juste visualiser tous les itinéraires possibles à
partir de la gare sous/sol.

A moins que l'on puisse faire fonctionner le réseau par Excel mais je n'y
crois pas.



Le dépôt ne sera autorisé qu'avec les machines vapeur. (réseau dans les deux
sens).

Les parcours sont à sens unique (dans le sens des flèches).

Quant au fonctionnement du réseau, si je peux le faire en automatique cela
serait bien, j'avoue que je n'y suis pas encore, c'est pour bientôt (aucun
rail n'est posé, seulement tous les modules sont fait).

Cordialement
Guy


"Modeste" a écrit dans le message de news:

Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :

Je voudrais pouvoir mettre le nom du train à la place du N°.
J'ai remplacé le N°1 par Thalys dans la liste déroulante.
J'ai remplacé le N°1 par Thalys dans Case 1.
Mais cela ne fonctionne pas, il doit certainement y avoir autre chose à
faire ?


il faut passer par une table de correspondance : Nom du train <==>
itinéraire
voir les fonctions INDEX, EQUIV

Est-ce a dire qu'un itinéraire est affecté à une rame (et une seule ...
!!! ???
A mon sens un itinéraire doit pouvoir etre parcouru par plusieures rames..
Est-ce que toutes les rames parcourent tout les sous-ensembles( Gare
voyageur, gare sous-sol, dépot, rampe, réseau externe)
Certains itinéraires doivent etre interdit à certaines rames (longueur de
section)
Est-ce que les parcours sont à sens unique ??? (Quid des 2 boucles de
retournements???)

en aparté : ton réseau est il automatisé autrement qu'avec des
interrupteurs manuels ??
multi-rames simultanées ?
le découpage en voies est insuffisant, gestion des cantons, Block-systems,
sécurité prise en écharpe ?
protection arret en gare,
Automate programmable, Jouef matic, Microprocesseur, DCC ???

selon le réseau proposé au départ, voila vers quoi je m'étais orienté
(TCO) , il y manque encore l'integration des itinéraires tels que françois
l'a proposé :
http://cjoint.com/?geoyHZVYfU
ce n'est qu'un rapide premier jet

--
--
@+
;o)))





Avatar
Francois L
Bonjour Modeste

Je ne pensais pas que quelqu'un d'autre était sur le coup.

Je vois que tu en connais un rayon sur le sujet (plus que moi).


Bonsoir Guy,

Tu sais ici tout le monde est sur tous les coups :-) et Modeste est
visiblement très au fait des problèmes des ferrovipathes, sans parler de
ses compétences en Excel... (t'as vu son classeur !). Bref c'est ce
genre de choses qui font la beauté de ce forum et que tu peux continuer
à poser toutes les questions que tu veux, ce serait bien le diable que
personne ne réponde.

--
François L

Avatar
Modeste
Bonsour® Guy72 avec ferveur ;o))) vous nous disiez :
A moins que l'on puisse faire fonctionner le réseau par Excel mais je n'y
crois pas.


En effet Excel ne posséde aucune fonction d'entrées/sorties ...
Tout au plus il serait possible via VBA d'utiliser le port Imprimante
il serait possible également d'utiliser l'interface RS232 mais il faudrait
instaurer un dialogue avec l'exterieur ce qui signifie un autre processeur...

Il faut dans ce cas s'orienter vers un vrai langage de programmation :
VIsual BASIC , C , C++, etc...
s'y connaitre également en interface PC, en electronique et automatisme ;o)))

Comme déja signalé précédement
pour une simulation voir : http://bahnvf.de/
rien que pour la prise en main c'est déja un beau challenge !!!
;o)))

--
--
@+
;o)))

1 2