> 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
29,99 €Souris sans fil Microsoft Sculpt Comfort bluetooth à 29,99 €
Valable jusqu'au 26 Janvier

Amazon fait une promotion sur la souris sans fil Microsoft Sculpt Comfort bluetooth qui passe à 29,99 € livrée gratuitement au lieu de 39 €. Elégante, performante et ergonomique, cette souris sans fil Bluetooth vous offre la liberté dont vous avez besoin pour le travail et/ou le divertissement. Le ruban tactile latéral vous permettra d'accéder rapidement à vos fonctionnalités préférées de Windows (8 et 10).


> Voir l'offre
599 €PC portable tactile convertible en tablette Dell Inspiron 14 (Core i5, 8 Go, SSD 256 Go) à 599 €
Valable jusqu'au 26 Janvier

Amazon fait une belle promotion sur l'ordinateur portable tactile convertible en tablette Dell Inspiron 14-5406 qui passe à 599 € livré gratuitement alors qu'on le trouve ailleurs à plus de 750 €. Ce portable convertible en tablette possède un écran tactile de 14 pouces FullHD (1920x1080) qui pivote à 360°, un processeur Intel Core i5-1135G7, 8 Go de RAM, un SSD de 256 Go, le WiFi, le bluetooth, une webcam et tourne sous Windows 10.


> 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 27 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