Et d'un. Bon.
Le deuxième, maintenant : 1998 (exemple) --->> mil neuf cent quatre-vingt-dix-huit et non mille neuf cent quatre-vingt-dix-huit
S'attendre (comme d'hab) au troisième, etc ...
Et d'un. Bon.
Le deuxième, maintenant : 1998 (exemple) --->> mil neuf cent quatre-vingt-dix-huit et non mille neuf cent quatre-vingt-dix-huit
S'attendre (comme d'hab) au troisième, etc ...
Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .
****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...
Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.
Re
unparia, non, non je n'avais pas occulté ta remarque.
Ici, je m'en suis tenu à 2 idées principales :
- éviter d'inclure dans un formulaire des actions indépendantes ;
- éviter une prolifération de boutons Je suis sorti, il y a peu, d'une gestion de plein de contrôles "CheckBox"
Pour en revenir à ta remarquable* boutade, il suffit de supprimer la boucle et changer l'option de la propriété "Multiselect.
Maintenant se pose la question de l'intérêt de passer par un formulaire ; mais c'est une autre histoire !
*que j'ai remarquée s'entend . Les boutades… j'aime surtout quand elles ont un caractère plutôt constructif qu'ironique .
pour le fun j'en ai fit un avec une listbox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Option Explicit Sub TEST2() Dim donne As Boolean, x x = DialogPrintMultiSheet2(ThisWorkbook, donne) If donne = True Then Sheets(x).PrintPreview ':MsgBox Join(x, ",") End Sub Function DialogPrintMultiSheet2(ByRef Wbk As Workbook, donne As Boolean) Dim Obj As Object, bout As Object, j&, UsF, i& 'on créé la boite de dialog Set UsF = ThisWorkbook.VBProject.VBComponents.Add(3) With UsF: .Properties("Caption") = "Selection De Sheets à Imprimer": .Properties("Width") = 200: .Properties("Height") = (Wbk.Sheets.Count + 1) * 25: End With 'on créé les checkbox au nombre de sheets Set Obj = UsF.designer.Controls.Add("Forms.ListBox.1", "listesheets", True) With Obj: .Top = 0: .Left = 10: .Width = 100: .MultiSelect = 1: .ListStyle = 1: End With 'on crée le bouton valider Set bout = UsF.designer.Controls.Add("Forms.CommandButton.1", "valider", True) With bout: .Left = UsF.Properties("Width") - 80: .Top = 12: .Width = 66: .Height = 20: .Caption = "Ok": .BackColor = vbGreen: End With 'on crée le bouton Annuler Set bout = UsF.designer.Controls.Add("Forms.CommandButton.1", "Annuler", True) With bout: .Left = UsF.Properties("Width") - 80: .Top = 42: .Width = 66: .Height = 20: .Caption = "Annuler": .BackColor = RGB(255, 150, 150): End With With UsF.CodeModule j = .CountOfLines .insertlines j + 1, "public tbl as String" .insertlines j + 2, "public donne as boolean " .insertlines j + 3, "Private Sub Valider_Click()" & vbCrLf & "dim i" & vbCrLf & " With listesheets" & vbCrLf & " For i = 0 To .ListCount - 1" & vbCrLf & " If .Selected(i) Then tbl = tbl & "" "" & .List(i)" & vbCrLf & " Next" _ & vbCrLf & " End With" & vbCrLf & "donne=true:if tbl="" "" or tbl="""" then donne=false" & vbCrLf & "Me.Hide" & vbCrLf & "End Sub" .insertlines j + 13, "Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer):Cancel=true:donne=false: Me.Hide:End Sub" .insertlines j + 14, "Private Sub Annuler_Click():Cancel=true:donne=false: Me.Hide :End Sub" End With VBA.UserForms.Add (UsF.Name) With UserForms(UserForms.Count - 1) For i = 1 To Wbk.Sheets.Count: .listesheets.AddItem Wbk.Sheets(i).Name: Next .Show donne = .donne If donne = True Then DialogPrintMultiSheet2 = Split(Trim(.tbl), " ") Else MsgBox "annulée" End With ThisWorkbook.VBProject.VBComponents.Remove (UsF) End Function
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager