> Tous les forums > Forum Bureautique
 listbox dans une macroSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Jaruska
  Posté le 19/11/2013 @ 20:00 
Aller en bas de la page 
Petit astucien

Bonsoir à tous, j'ai la macro ci-dessous qui effectue des modifications dans un classeur d'après les données d'une liste déroulante dans la cellule L26. J'aimerais que ces 3 données me soient directement proposées dans une listbox et qu'en cliquant sur l'une des trois, la macro correspondante s'effectue.

Private Sub CommandButton9_Click()
ActiveSheet.Unprotect
If Range("L26") = "1°x 1°" Then
ActiveWindow.DisplayHeadings = True ' Affiche les en-têtes
Columns("X:AE").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = False 'affiche les colonnes
Range("AB6:AD6").Select ' (1°x1°)
Selection.Copy
Range("AB9").Select
ActiveSheet.Paste 'Colle la copie
Range("AB9:AC21").Select
'Application.CutCopyMode = False
Selection.FillDown ' recopie vers le bas
Columns("Y:AD").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = True ' masque les colonnes
ActiveWindow.DisplayHeadings = False ' Masque les en-tête
End If
If Range("L26") = "0.5°x 0.5°" Then
ActiveWindow.DisplayHeadings = True ' Affiche les en-têtes
Columns("X:AE").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = False 'affiche les colonnes
Range("AB5:AD5").Select ' (0.5°x 0.5°)
Selection.Copy
Range("AB9").Select
ActiveSheet.Paste 'Colle la copie
Range("AB9:AC21").Select
'Application.CutCopyMode = False
Selection.FillDown ' recopie vers le bas
Columns("Y:AD").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = True ' masque les colonnes
ActiveWindow.DisplayHeadings = False ' Masque les en-têtes
End If
If Range("L26") = "0.25°x 0.25°" Then
ActiveWindow.DisplayHeadings = True ' Affiche les en-têtes
Columns("X:AE").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = False 'affiche les colonnes
Range("AB4:AD4").Select ' (0.25°x 0.25°)
Selection.Copy
Range("AB9").Select
ActiveSheet.Paste 'Colle la copie
Range("AB9:AC21").Select
'Application.CutCopyMode = False
Selection.FillDown ' recopie vers le bas
Columns("Y:AD").Select ' sélecte les colonnes
Selection.EntireColumn.Hidden = True ' masque les colonnes
ActiveWindow.DisplayHeadings = False ' Masque les en-têtes
End If

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("A2").Select
End Sub

Merci d'avance.



Modifié par Jaruska le 19/11/2013 20:08
Publicité
ferrand
 Posté le 20/11/2013 à 10:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonjour,

Une méthode (il y en a d'autres possibles) :

Mettre chacun des choix dans une macro distincte (chaque portion de code incluse dans un If... End If)

Lister ailleurs (autre feuille...) les 3 choix à affecter au ListBox [plage à indiquer dans propriété ListFillRange du ListBox]. Créer le ListBox sur feuille concernée.

Macro évènementielle attachée au changement de valeur du ListBox :

Private Sub ListBox1_Change()
Me.Unprotect
Select Case Me.ListBox1.ListIndex
Case 0
MacroChoix1
Case 1
MacroChoix2
Case 2
MacroChoix3
End Select
Me.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Me.Range("A2").Select
End Sub

A chaque changement de valeur, la macro correspondante s'exécutera.

Exemple : http://cjoint.com/?CKuk5XYDeXz

Jaruska
 Posté le 20/11/2013 à 13:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Ferrand, cette méthode je l'avais à peu près similaire: 3 OptionButton qui commandaient chaque macro séparément.

J'ai ensuite regroupé les trois macros mais je ne voulais qu'une seule commande qui m'ouvre la listbox1. Est ce que la liste box peut être appelée comme un MsgBox avec une seule commande ?

En fait ce que j'aimerais avoir c'est un CommandButton appelé ex."Grille ?" qui me fasse apparaître dans un MsgBox les trois propositions et que si je clique sur l'une des trois, la macro correspondante soit activée.



Modifié par Jaruska le 20/11/2013 13:59
ferrand
 Posté le 20/11/2013 à 19:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut,

Je ne comprends pas bien ce que tu veux faire. Le bouton n'ajouterait rien, ce ne serait qu'un intermédiaire supplémentaire.

La ListBox remplace fort bien le bouton et n'occupe pas plus de place !

Un MsgBox ne peut jouer ce rôle, le message n'est qu'un message et n'inclut pas de lien actif...

Jaruska
 Posté le 21/11/2013 à 16:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

OK merci, à+

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
34,06 €Compresseur portable autonome Xiaomi Mija à 34,06 € code VIP15
Valable jusqu'au 20 Janvier

Boulanger fait une promotion sur le compresseur portable autonome Xiaomi Mija qui passe à 34,06 € avec le code promo VIP15. Ce compresseur à emporter facilement avec vous comporte un écran (où vous pourrez choisir la pression à atteindre en PSI ou BAR) une batterie de 2000 mA et vous permettra de gonfler vos jouets (41 pièces avec une charge), pneus de vélo, de trotinette, de moto (6 pneus avec une charge) et même de voiture (5 pneus avec une charge) facilement. Le câble est accompagné d'un embout pour valve Schrader et un adapteur Presta et une aiguille sont fournis. Le compresseur se recharge via une prise Micro USB.


> Voir l'offre
12,90 €Windows 10 Pro 32/64 bits OEM à 12,90 €
Valable jusqu'au 21 Janvier

Le vendeur sérieux Digital FR propose sur Amazon la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 12,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
19,63 €Carte mémoire Samsung 128 Go MicroSDXC Evo Select U3 (100 Mo/s) à 19,63 € livrée
Valable jusqu'au 20 Janvier

Amazon Allemagne fait une promotion sur la toute nouvelle carte mémoire Samsung 128 Go MicroSDXC Evo Select U3 qui passe à 15,12 €. Comptez 4,51 € pour la livraison en France soit un total de 19,63 € livrée. Une bonne affaire pour cette carte que l'on trouve ailleurs à partir de 25 € et qui offre des vitesses de 100 Mo/s en lecture et 90 Mo/s en écriture.  Elle est idéale pour les téléphones, caméras et appareils photo 4K. Elle est étanche, anti-choc et résiste aux rayons X et aux champs magnétiques. Elle est garantie 10 ans.

Vous pouvez utiliser votre compte Amazon France sur Amazon Allemagne et il n'y a pas de frais de douane. Si vous êtes perdu en allemand, vous pouvez traduire le site en anglais.


> Voir l'offre

Sujets relatifs
2 pages par feuille dans macro excel
Creation d' une boucle macro dans fichier EXCEL pour impression
macro afficher masquer lignes tableau dans word 2010
Ecrir par macro dans des cellules différents
[chemin relatif dans une macro]
se positionner avec une macro dans une cellule précise
Place du curseur dans macro
Bouton macro dans feuille Excel 2010
Macro introuvable / Erreur de compilation dans le module caché
Création d'une macro dans Word
Plus de sujets relatifs à listbox dans une macro
 > Tous les forums > Forum Bureautique