Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Pour le userform je sais faire , mais pour la macro ?? , je sollicite votre participation
Merci d'avance.
Edit :
Mon point de départ pour l'incrémentation est toujours B1 et sa valeur est toujours égale à 10
l'incrémentation est de 10 en 10 et toute les 3 lignes.
salut
Sur la quand_clic de ton bouton, en admettant que ta combobox soit appelée ComboBox1 :
Code:
with sheets("feuil1"
'défini un préfixe
select case me.comboBox1
'met la valeur de la combo en valeur de test
Case 4 'la combo = 4
.range("B1")=10 'cellule B1 = 10
.range("B4")=20 'cellule B4 = 20
.range("B7")=30 'cellule B7 = 30
.range("B10")=40 'cellule B10 = 40
end select
end with
with sheets("feuil1") : agit comme un préfixe pour les instructions commençant par un caractère de liaison ("." ou "!")
ainsi dans la suite,
.range("B1")=10
revient à écrire
sheets("feuil1").range("B1")=10
avec select case, on met la valeur de la combo dans la variable Case, et on la compare à ce qui suit case dans l'instruction. Dès qu'une valeur correspond, on exécute le code jusqu'à la ligne suivante qui contient case (ou end select) et on va après end select
Dans ton cas, plutot que de tester par des if successifs, je pense que c'est plus simple d'utiliser cette méthode
Select Case Valeur
Case 1
___ Traitement de valeur = 1
Case 2
___ Traitement de valeur = 2
Case 3
___ Traitement de valeur = 3
Case x
___ Traitement de valeur = x
Case else
___ Traitement de valeur <> de toutes celles traitées
select end
Option Base 1
Private Sub CommandButton1_Click()
Select Case Me.ComboBox1.Value
Case 4
Range("B1").Value = 10
Range("B4").Value = 20
Range("B7").Value = 30
Range("B10").Value = 40
End Select
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 14
ComboBox1.AddItem i
Next
End Sub
NB p'tites remarques sur ton code 😀
Base 1 => j'préfère laisser Base 0 (défaut) et définir les 2 limites de mas indices : ça évite des plantages en remaniement par des néophytes qui piochent les codes
et si le lancement de l'USF se fait par un menu en feuil2 😱
Je critique parce que je suis revenu pour rien, na
Private Sub CommandButton1_Click()
Columns("B:B").ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B1").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
Private Sub UserForm_Initialize()
For i = 1 To 14
ComboBox1.AddItem (i)
Next
End Sub
je vous envoie le classeur avec le userform (doc exemple)
Edit : pouvez ajouter dans le code un clearcontent au cas je dois modifier les valeurs comprisent dans la collonne B.
Si un jour je sélectionne 14 mais demain je selectionne 6, je souhaiterai que ce soit automatique si possible.
Re-, et en complément,
si tu ne veux pas effacer tout ce qu'il y a dans la colonne B, tu remplaces :
Private Sub CommandButton1_Click()
Columns("B:B").ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B1").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
Private Sub CommandButton1_Click()
For c = 0 To 13
Range("B1").Offset(c * 3, 0).ClearContents
Next
For c = 0 To ComboBox1.Value - 1
Range("B1").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
salut starz et les autres
c'est ça, de donner les infos au compte-goutte
Code:
Private Sub CommandButton1_Click()
Select Case Me.ComboBox1.Value
Case 1
Case 2
Range("B1") = 10
Range("B2").Value = 20
Case 3
Case 4
Range("B12").Value = 10
Range("B15").Value = 20
Range("B18").Value = 30
Range("B21").Value = 40
Range("B24").Value = 50
Range("B27").Value = 60
Range("B30").Value = 70
Range("B33").Value = 80
Range("B36").Value = 90
Range("B39").Value = 100
Range("B42").Value = 110
Range("B45").Value = 120
Range("B48").Value = 130
Range("B51").Value = 140
Case 5
Case 6
Range("B1").Value = 10
Range("B4").Value = 20
Range("B7").Value = 30
Range("B10").Value = 40
Range("B3").Value = 50
Range("B17").Value = 60
Case 7
Case 8
Case 9
Case 10
Case 11
Case 12
Case 13
Case 14
End Select
End Sub
Suffit de remplir les blancs 😀, mais...
il faut peut-être tenir compte de la remarque de bhbh et/ou commencer la macro par un columns("B").clearcontents
On se rapproche (edit: bonsoir bhbh (trop rapide le gars 😉 )
j'ai encore point rafraichi assez vite
Code:
Private Sub CommandButton1_Click()
Dim i
Dim z
i = Me.ComboBox1.Value
Select Case i
Case 1 To 14
For z = 1 To i
Cells(i + z, 2).Value = z * 10
Next
End Select
End Sub
merci, merci à tous j'ai trouvé bonheur avec tous ce que vous m'avez apporté.
du coup le code compléter par mes besoins perso devient :
Private Sub CommandButton1_Click()
Range("B10:B54").ClearContents
Range("C12:J54").ClearContents
Range("A12:A54").ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B12").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
Private Sub UserForm_Initialize()
For i = 1 To 14
ComboBox1.AddItem (i)
Next
End Sub
re,
Est-ce que l'on peux bidouiller pour que je puisse obtenir ça :
Private Sub CommandButton1_Click()
Range("A10:J54").ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B12").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
'Private Sub CommandButton3_Click()
'Range("A67:J111").ClearContents
'For d = 0 To ComboBox2.Value - 1
'Range("B69").Offset(d * 3, 0).Value = 10 * (d + 1)
'Next d
'Unload Me
'End Sub
Private Sub UserForm_Initialize()
For i = 1 To 14
'For j = 1 To 14
ComboBox1.AddItem (i)
'ComboBox2.AddItem (j)
Next
End Sub
Private Sub CommandButton1_Click()
Union(Range("A10:J54"), Range("A67:J111")).ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B12").Offset(c * 3, 0).Value = 10 * (c + 1)
Range("B69").Offset(c * 3, 0).Value = 10 * (c + 1)
Next c
Unload Me
End Sub
si on choisi dans la combobox un chiffre < 14 on reste dans la plage
B12:B54 (10 à 140)
Si on choisi un chiffre >14 (ex=28)on passe dans la plage B12:B111.
(10 à 280)
c'est pour ça que j'ai fait 2 combobox mais y'a surement plus simple?
EDIT : trouvé 1 début de piste mais c'est pas bon
Private Sub CommandButton1_Click()
Union(Range("A10:J54"), Range("A67:J111")).ClearContents
For c = 0 To ComboBox1.Value - 1
Range("B12").Offset(c * 3, 0).Value = 10 * (c + 1)
Range("B69").Offset(c * 3, 0).Value = 10 * (c + 15)
Next c
Unload Me
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD