Liste déroulante liée sur plusieurs onglets [Résolu]

Liste déroulante liée sur plusieurs onglets [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 11-03-2013 à 10:33:51    

Bonjour à tous,
 
J'ai créé un liste déroulante avec 2 critères, qui lorsque que l'on change le critère change les données dans un tableau.
Cette liste et ce tableau ce répètent chaque mois dans un onglet différent.
 
Ce que j'aimerais faire c'est que lorsque j'agis sur ma liste déroulante dans n'importe quel onglet, celle ci change également le critère dans les autres onglets.
 
Est ce que c'est possible de faire cela sans VBA ?
Sinon avec VBA comment puis je faire ?
 
Merci pour vos réponses.


Message édité par benoug le 11-03-2013 à 17:25:23
Reply

Marsh Posté le 11-03-2013 à 10:33:51   

Reply

Marsh Posté le 11-03-2013 à 10:45:25    

Bonjour,
 
Je suppose que tu as créé ta liste déroulante avec "validation de données" ?
Si tu veux avoir la même information sur tous tes onglets, il suffit de créer ta liste déroulante en A1 (par exemple) sur ton 1er onglet et dans tous les autres onglets, les valeurs de A1 sont égales à A1 de ton 1er onglet.

Reply

Marsh Posté le 11-03-2013 à 10:51:48    

Oui avec validation de données.
J'y ai pensé mais on est obligé de revenir au premier onglet à chaque fois. Le but c'est d'être sur n'importe quel onglet et de pouvoir changer le critère de la liste et qu'il change dans tous les onglet.

Reply

Marsh Posté le 11-03-2013 à 15:32:38    

Je pense qu'il faut passer par VBA.
Dès que la valeur de la liste déroulante change, tu l'appliques aux autres onglets.

Reply

Marsh Posté le 11-03-2013 à 15:35:25    

Ok, est ce que vous pouvez m'aider ?
J'ai des connaissances assez limité en VBA.
 
Merci

Reply

Marsh Posté le 11-03-2013 à 16:34:40    

Je suis auto didacte dans ce domaine, donc mon code pourra parraitre "impure" aux experts, mais celui-ci devrait marcher.
Je suppose que ta liste déroulante est en A1 :
 

Code :
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim vTemp As Variant
  3. Dim i As Integer
  4. If Target.Address(False, False) = "A1" Then
  5.   vTemp = Target.Value
  6.   Application.EnableEvents = False
  7.    For i = 1 To Sheets.Count
  8.     Sheets(i).Range("A1" ).Value = vTemp
  9.    Next i
  10.   Application.EnableEvents = True
  11. End If
  12.  
  13. End Sub


 
Code à coller dans chaque feuille.

Reply

Marsh Posté le 11-03-2013 à 17:24:11    

Super ! Merci ça fonctionne.
 
J'aimerais bien apprendre le VBA aurais-tu un bon site à me recommander pour débuter ?

Reply

Marsh Posté le 11-03-2013 à 17:51:41    

Désolé, je ne connais pas de site en particulier.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed