Remplacer une Inputbox par des CheckBox

Bonjour, j'ai actuellement des macro qui fonctionnent avec 2 "InputBox"

Sub iDT40K_C_AUX()

Dim Aux As Variant
    Dim Calibre As Integer

    Aux = InputBox("Aux")
    Calibre = InputBox("Calibre?")

    If Aux = "1" Then
            Sheets("LISTE REFERENCE  DESIGNATIONS").Select
            Range("M2").Select
            Selection.Copy
            Sheets("IDD40 IDT40").Select
            Range("AT5:AT8").Select
            ActiveSheet.Paste
    End If
    If Aux = "2" Then
            Sheets("LISTE REFERENCE  DESIGNATIONS").Select
            Range("M3").Select
            Selection.Copy
            Sheets("IDD40 IDT40").Select
            Range("AT5:AT8").Select
            ActiveSheet.Paste
    End If
    If Aux = "3" Then
            Sheets("LISTE REFERENCE  DESIGNATIONS").Select
            Range("M4").Select
            Selection.Copy
            Sheets("IDD40 IDT40").Select
            Range("AT5:AT8").Select
            ActiveSheet.Paste
    End If

J'ai ensuite la demande du calibre mais cela restera avec une demande avec une "InputBox"

La réponse à la demande "Aux" étant toujours la même je souhaiterai remplacer la box par 3 "CheckBox" qui serais dans mes Userform qui comprennent 3 "ComboBox" avec chacune leurs "ListBox"

Voici un exemple pour une box

Private Sub ComboBox1_Change()
    ListBox1.Clear

    Dim no_colonne As Integer, nb_lignes As Integer
        no_colonne = ComboBox1.ListIndex + 139
    nb_lignes = Cells(2, no_colonne).End(xlDown).Row

    For i = 3 To nb_lignes
        ListBox1.AddItem Cells(i, no_colonne)
    Next
End Sub

Private Sub CommandButton1_Click()

    Dim i As Integer
    For i = 1 To TextBox3
         Application.Run (TextBox1)
    Next
    TextBox3 = 1
End Sub

Private Sub ListBox1_Click()

    TextBox1.Value = ListBox1.Value
End Sub

Private Sub UserForm_Initialize()
    For i = 139 To 141 
        ComboBox1.AddItem Cells(2, i)
    Next
End Sub

Je ne connais rien code, lorsque je comprend un peu le fonctionnement j'arrive a les modifier selon mes besoin et encore pas toujours d'où ma demande d'aide.

Dans l'attente de votre aide.

Bonjour Momo-28,

Peux-tu fournir un fichier (anonymisé), ce serait plus facile pour te répondre (d'autant que là il faut modifier le userform) et tu augmenterais aussi tes chances d'avoir une réponse ... tiens mais au fait, il me semble que c'est indiqué dans la charte du forum [A lire avant de poster]

en voici une partie avec une combobox et une macro mais a savoir que j'ai beaucoup de box et de macro comme cela que je devrait modifier par la suite

3exemple.xlsm (37.02 Ko)

Bonjour,

  1. Le fichier n'est absolument pas opérationnel, le code est tronqué et n'est pas compilable, la macro lancée par le bouton est dans un autre fichier (probablement le fichier original) et dans le fichier transmis il n'y a pas de macro portant ce nom ... Bref, difficile de t'aider dans ces conditions.
  2. Existe t il un lien et si oui lequel, entre le UserForm "IDT40" et le bout de code "iDT40K_C_AUX" ?
  3. Si tu places les 3 CheckBox dans un UserForm pourquoi vouloir conserver un inputbox pour le calibre etne pas ajouter dans le formulaire une ListBox pour "Calibre" car tu sembles tester un panel de valeurs dans "iDT40K_C_AUX" ?

1- Effectivement il me manquer une partie pour exécuter la macro je n'ai pas vérifier et du coup pas remarquer qu'elle venait de mon fichier d'origine désolé. Normalement cela est bon, mon fichier d'origine faisant un peu plus de 7Mo et étant un outil de travail je ne peut le laisser entier.

2- oui il y a un lien, l'userform iDT40 lance les macro DT40 et j'en ai beaucoup d'autre c'est pour cela

3- Le calibre doit rester par inputbox c'est ce qui le plus pratique car il change régulièrement et de cette manière il y a juste refaire "entrée" pour relancer la macro.

6exemple.xlsm (103.95 Ko)

Ta demande est de remplacer le 1er InputBox par 3 CheckBox mais dans la version que tu envois, le 1er InputBox a disparu ...

Ta demande c'est de remplacer les 3 pavés du UserForm par un seul dont le fonctionnement serait conditionné par l'un des choix des 3 CheckBox ?

Pour le calibre, tu pourrais rajouter un TextBox, cela ne modifierait pas le fonctionnement (si pas bon, tu modifies et relances la macro) et ça serait plus fluide.

Il y a sans les "aux" et avec, sans bien sûr je n'ai rien a changé rien ne serais coché et avec c'est là que les case a cocher me servirai.

Ma demande est plutôt de conserver l'userform mais d'en ajouter une case pour chaque demande (une seule sera coché a la fois jamais 2) ce serais pour retirer la demande 1,2 ou 3 par inputbox.

Pour le calibre avec une textbox je serai obligé de cliquer sur le calibre que j'ai besoin donc si il change régulièrement ce n'est pas très pratique et j'ai déjà une texte box pour choisir le type du matériel car j'en ai plusieurs disponible a chaque fois

Bonsoir Momo28, désolé mais en ce qui me concerne je renonce car je ne comprends toujours pas ce que tu veux. En plus tu as des procédures où tu ne testes pas AUX de 1 à 3 mais aussi de 1 à 5 ("iDT40K_C_AUX", "iDT40T_B_AUX", ...).

Cela est une erreur 4 et 5 ne servent plus il seront à supprimer.

Je voudrais simplement remplacer la demande en inputbox dans la macro par des checkbox dans l'userform ( si checkbox1 cocher alors dans la macro exécute 1,2 ou 3 selon laquelle est cocher bien sûr car il n'y en aura jamais 2 de cocher)

Voir fichier joint.

J'ai modifié le UserForm pour afficher les 3 CheckBox sous TextBox1 ou TextBox4 ou TextBox6 lorsque la valeur de cette textbox se termine par "AUX". J'ai retouché les évènements "ListBox1_Click" (1 à 3) et "ComboBox1_Change" (1 à 3) pour prendre en compte l'ajout des checkbox et leur affichage ou non et j'ai réécrit la procédure "iDT40K_C_AUX" (simplification et prise en compte des checkbox).

11exemple2.xlsm (106.81 Ko)

Merci beaucoup, par contre j'ai un problème je l'ai intégré dans mon fichier d'origine en supprimant mon ancienne macro pour ne pas en avoir deux avec le même nom, mais il j'ai une erreur d'execution '438' "propriété ou méthode non gérée par cet objet"

If (cPlageCopyAux <> "") And (cPlageCopyCal1 <> "") Then
Sheets("LISTE REFERENCE DESIGNATIONS").Range(cPlageCopyAux).Copy
Sheets("IDD40 IDT40").Range(cPlagePasteAux).Paste
Application.CutCopyMode = False

J'ai également essayer en supprimant toute la partie pour "Aux" afin de changer les macro qui n'en n'ont pas cela ne fonctionne pas au même endroit

Sheets("LISTE REFERENCE DESIGNATIONS").Range(cPlageCopyCal1).Copy
Sheets("IDD40 IDT40").Range(cPlageCopyPasteCal1).Paste
Sheets("IDD40 IDT40").Range(cPlageCopyCal2).Copy
Sheets("IMPLANTATION").Paste
Application.CutCopyMode = False
Sheets("IMPLANTATION").ActiveCell.Offset(0, 3).Range("A1").Select
Application.CutCopyMode = False

Du coup j'ai essayer et réussi a faire fonctionner des checkbox dans mon fichier au lieu de l'inputbox pour la partie Aux mais dans mes macro avec plein de If mais la tienne est bien mieux c'est pour cela que j'aimerais bien réussir à la faire fonctionner.

Avec cette version cela devrait fonctionner.

10exemple3.xlsm (118.87 Ko)

Merci beaucoup de ton aide, cela fonctionne parfaitement comme cela

Rechercher des sujets similaires à "remplacer inputbox checkbox"