Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Userform/ macro ajout valeur dans cellule

  • Initiateur de la discussion Initiateur de la discussion starz
  • Date de début Date de début

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 !

starz

XLDnaute Occasionnel
Bonjour,
Pourriez vous m'aider à concevoir un userform avec une macro que je ne sais pas faire :

Soit :
Zone de texte: Combien de ligne voulez vous afficher ?
ComboBox: 1 à 14
un bouton valider

Résultat si choix = 4 sur feuil1:
cellule B1 = 10
cellule B4 = 20
cellule B7 = 30
cellule B10 = 40

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.
 
Dernière édition:
Re : Userform/ macro ajout valeur dans cellule

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

A+
 
Re : Userform/ macro ajout valeur dans cellule

Bonsoir


Si j'ai bien compris

A mettre dans le code de l'userform

Code:
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

edit: bonsoir Gorfael (pas rafraichi à temps)
 
Re : Userform/ macro ajout valeur dans cellule

Salut Staple1600 et le forum
Si j'ai bien compris ...
oui, t'as bien compris 😛

A+

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
 
Re : Userform/ macro ajout valeur dans cellule

Bonsoir starz, gorfael, staple

regarde le fichier joint

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
 

Pièces jointes

Re : Userform/ macro ajout valeur dans cellule

bonsoir et merci,
j'ai fait ce que vous m'avez ecrit mais ça ne vas pas.
En faite ce que je souhaite obtenir viens du combobox

si je valide 4 alors j'ai mon exemple ci-dessus
si je valide 6 j'ai

cellule B1 = 10
cellule B4 = 20
cellule B7 = 30
cellule B10 = 40
cellule B13 = 50
cellule B17= 60

si je valide 2 j'ai
B1 = 10
B2= 20

etc...

or là ça ne fonctionne que si je valide 4

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.

merci encore
 

Pièces jointes

Dernière édition:
Re : Userform/ macro ajout valeur dans cellule

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

par

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
 
Re : Userform/ macro ajout valeur dans cellule

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

A+
 
Dernière édition:
Re : Userform/ macro ajout valeur dans cellule

Re



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
 
Dernière édition:
Re : Userform/ macro ajout valeur dans cellule

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 : Userform/ macro ajout valeur dans cellule

Allez, soyons fou 😀

si les cellules que tu as données (pour le clearcontents) sont exactes, tu peux remplacer :

Range("B10:B54").ClearContents
Range("C12:J54").ClearContents
Range("A12:A54").ClearContents

par :

Union(Range("A12:A54").Resize(43, 10), Range("B10:B11")).ClearContents

Bonne soirée (doucement sur la bière irlandaise, elle va virer ce soir 😀)
 
Dernière édition:
Re : Userform/ macro ajout valeur dans cellule

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
 
Re : Userform/ macro ajout valeur dans cellule

Re-,

tu y étais presque...
Pas besoin de d, c suffira

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
 
Re : Userform/ macro ajout valeur dans cellule

oui c'est presque ça ! merci


si i=28 et non plus 14

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

Que faut il faire pour ne pas fermer le useform apès validation ?
 
Dernière édition:
- 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

Discussions similaires

Réponses
7
Affichages
829
J
Réponses
2
Affichages
1 K
Justine56
J
B
Réponses
4
Affichages
2 K
benoitoleron
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…