Menu déroulant en VBA sous excel
Fermé
yannou14
Messages postés
1
Date d'inscription
mardi 24 juin 2008
Statut
Membre
Dernière intervention
24 juin 2008
-
24 juin 2008 à 10:54
Yannou14 - 25 juin 2008 à 11:04
Yannou14 - 25 juin 2008 à 11:04
A voir également:
- Menu déroulant en VBA sous excel
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Mise en forme conditionnelle excel - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
3 réponses
bonjour,
je ne comprend pas trop, c'est un tableau croisé dynamique? ton menu déroulant qui est rataché a ta base est rlié comment(quelle formule?)?
je ne comprend pas trop, c'est un tableau croisé dynamique? ton menu déroulant qui est rataché a ta base est rlié comment(quelle formule?)?
m@rina
Messages postés
21080
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
11 350
24 juin 2008 à 21:21
24 juin 2008 à 21:21
Bonsoir,
Pas bien clair en effet... Je verrais bien néanmoins l'utilisation d'une formule DECALER pour nommer les plages afin que le nom de la plage s'adapte à cette dernièe en fonction des ajouts (ou des suppressions). Ce qui fait que ta liste déroulante serait proposerait toujours le contenu de ta base...
C'est ce qu'il fallait comprendre ??? ;))
m@rina
Pas bien clair en effet... Je verrais bien néanmoins l'utilisation d'une formule DECALER pour nommer les plages afin que le nom de la plage s'adapte à cette dernièe en fonction des ajouts (ou des suppressions). Ce qui fait que ta liste déroulante serait proposerait toujours le contenu de ta base...
C'est ce qu'il fallait comprendre ??? ;))
m@rina
En fait je cherche à augmenter le volume de mon menu déroulant, ce dernier ne va pas chercher tout les postes il s'arrête aux 20 premiers postes.
Je souhaiterai trouver dans le programme ce qui "quantifie" la "matrice" de données liée à ma feuille base de données.
Je vous joint ci dessous mon programme:
Sub Format_ligne_du_DE()
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Application.CutCopyMode = False
With Selection.Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlNone
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlLeft)
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = xlHorizontal
End With
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
Selection.Style = "Milliers"
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
ActiveCell.Offset(0, -2).Range("A1").Select
ActiveCell.Offset(0, -2).Range("A1:E1").Select
Selection.Font.Bold = False
ActiveCell.Offset(0, 2).Range("A1").Select
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Font.Bold = True
ActiveCell.Rows("1:1").EntireRow.EntireRow. _
AutoFit
ActiveCell.Offset(0, 3).Range("A1").Select
End Sub
Voila merci d'avance et n'hésitez pas si je ne suis pas assez clair ...
Yann
Je souhaiterai trouver dans le programme ce qui "quantifie" la "matrice" de données liée à ma feuille base de données.
Je vous joint ci dessous mon programme:
Sub Format_ligne_du_DE()
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Application.CutCopyMode = False
With Selection.Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlNone
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlLeft)
.Weight = xlMedium
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = True
.Orientation = xlHorizontal
End With
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
With Selection.Borders(xlLeft)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlRight)
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlTop).LineStyle = xlNone
Selection.Borders(xlBottom).LineStyle = xlNone
Selection.BorderAround LineStyle:=xlNone
Selection.Style = "Milliers"
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.NumberFormat = "# ##0,00_ ;-# ##0,00\ "
ActiveCell.Offset(0, -2).Range("A1").Select
ActiveCell.Offset(0, -2).Range("A1:E1").Select
Selection.Font.Bold = False
ActiveCell.Offset(0, 2).Range("A1").Select
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.Font.Bold = True
ActiveCell.Rows("1:1").EntireRow.EntireRow. _
AutoFit
ActiveCell.Offset(0, 3).Range("A1").Select
End Sub
Voila merci d'avance et n'hésitez pas si je ne suis pas assez clair ...
Yann
m@rina
Messages postés
21080
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
15 novembre 2024
11 350
25 juin 2008 à 10:43
25 juin 2008 à 10:43
Bonjour,
J'ai regardé rapidement mais je ne vois dans ton code que du formatage...
Essaie de nous en dire plus : ta liste déroulante, elle est dans ta feuille ou dans un Userform ?
Si elle est dans ta feuille, comment l'as tu insérées.
Les items d'une liste déroulante insérée dans une Userform dépendent de la propriété RowSource.
Les items d'une liste déroulante (Controle ActiveX) insérée dans une feuille dépendent de la propriété ListFillRange
Les items d'une liste déroulante de formulaire insérée dans une feuille dépendent de la plage d'entrée accessible par un clic doit => Format du contrôle (pas de macro).
Le mieux est de nommer la plage de la feuille qui contient les items et de donner dans les propriétés de la liste le nom de cette plage. La plage peut évoluer en fionction de la base de données et le nom peut évoluer avec avec une fonction DECALER (oui, oui, j'y reviens !...)
m@rina
J'ai regardé rapidement mais je ne vois dans ton code que du formatage...
Essaie de nous en dire plus : ta liste déroulante, elle est dans ta feuille ou dans un Userform ?
Si elle est dans ta feuille, comment l'as tu insérées.
Les items d'une liste déroulante insérée dans une Userform dépendent de la propriété RowSource.
Les items d'une liste déroulante (Controle ActiveX) insérée dans une feuille dépendent de la propriété ListFillRange
Les items d'une liste déroulante de formulaire insérée dans une feuille dépendent de la plage d'entrée accessible par un clic doit => Format du contrôle (pas de macro).
Le mieux est de nommer la plage de la feuille qui contient les items et de donner dans les propriétés de la liste le nom de cette plage. La plage peut évoluer en fionction de la base de données et le nom peut évoluer avec avec une fonction DECALER (oui, oui, j'y reviens !...)
m@rina
En fait le programme de base est le suivant:
Sub Saisir_et_insérer_titre_prix()
DialogSheets("Dialog2").Show
Application.Goto Reference:="Point_insertion"
Selection.EntireRow.Insert
Sheets("Cadre").Select
Range("a2:f2").Select
Selection.Copy
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("F2").Select
Application.CutCopyMode = False
Selection.Copy
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 5).Range("A1").Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.Run Macro:="APD.xls!Format_ligne_du_DE"
End Sub
Voila ...
Redis moi si ça t'aide ???
Yann
Sub Saisir_et_insérer_titre_prix()
DialogSheets("Dialog2").Show
Application.Goto Reference:="Point_insertion"
Selection.EntireRow.Insert
Sheets("Cadre").Select
Range("a2:f2").Select
Selection.Copy
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 0).Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Range("F2").Select
Application.CutCopyMode = False
Selection.Copy
Application.Goto Reference:="Point_insertion"
ActiveCell.Offset(-1, 5).Range("A1").Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.Run Macro:="APD.xls!Format_ligne_du_DE"
End Sub
Voila ...
Redis moi si ça t'aide ???
Yann