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

Remplissage de cellules depuis userform (par rapport à une date)

  • Initiateur de la discussion Initiateur de la discussion lookdogs
  • 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 !

Re : Remplissage de cellules depuis userform (par rapport à une date)

Bonjour lookdogs,

(Pouvez-vous m'expliquer les formules et non me les faire
merci)

Expliquer sans faire je ne sais pas faire 😉

Le code du bouton Valider de l'USF :

Code:
Private Sub CommandButton1_Click() 'Valider
Dim orga As Byte, mois As Byte
orga = ComboBox2.ListIndex + 1
mois = ComboBox3.ListIndex + 1
If orga = 0 Then ComboBox2.DropDown: Exit Sub
If mois = 0 Then ComboBox3.DropDown: Exit Sub
With Sheets("Emprunt").Range("B11").Offset(mois, 2 * (orga - 1))
  .Value = Val(Replace(TextBox1, "," , "."))
  .Offset(, 1) = Val(Replace(TextBox2, "," , "."))
End With
Unload Me
End Sub

Le code est facile à comprendre, mais tout dépend de votre niveau en VBA. N'hésitez pas à dire ce qui vous bloque.

Il restera bien sûr à contrôler la validité de ce qui est entré dans les 2 TextBox.

A+
 
Dernière édition:
Re : Remplissage de cellules depuis userform (par rapport à une date)

Re,

Finalement, le mieux est de contrôler en même temps les TextBox :

Code:
Private Sub CommandButton1_Click() 'Valider
Dim orga As Byte, mois As Byte, v1 As Double, v2 As Double
orga = ComboBox2.ListIndex + 1
mois = ComboBox3.ListIndex + 1
If orga = 0 Then ComboBox2.DropDown: Exit Sub
If mois = 0 Then ComboBox3.DropDown: Exit Sub
v1 = Val(Replace(TextBox1, ",", "."))
v2 = Val(Replace(TextBox2, ",", "."))
If v1 = 0 Then TextBox1 = "": TextBox1.SetFocus: Exit Sub
If v2 = 0 Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
With Sheets("Emprunt").Range("B11").Offset(mois, 2 * (orga - 1))
  .Value = v1
  .Offset(, 1) = v2
End With
Unload Me
End Sub

A+
 
Re : Remplissage de cellules depuis userform (par rapport à une date)

Bonjour,

Merci beaucoup pour votre aide, je commençais à me tirer les cheveux.

ça marche super bien.

En faite, je commence juste à m'intéresser au VBA et pour être franc je ne comprends pratiquement rien à la formule.

Pouvez vous m'expliquer le pourquoi du comment!!!!!?

Je sais, je suis embêtant mais sinon je vais tout le temps vous demander et j'en serais au même point.

Merci encore a +

Cordialement benjamin
 
Re : Remplissage de cellules depuis userform (par rapport à une date)

Bonjour lookdogs,

Comme promis, voici les explications mises en commentaires :

Code:
Private Sub CommandButton1_Click() [COLOR="Red"]'Bouton Valider[/COLOR]
[COLOR="red"]'Déclaration des variables : As Byte nombre de 0 à 255, Double : nombre quelconque[/COLOR]
Dim orga As Byte, mois As Byte, v1 As Double, v2 As Double
[COLOR="red"]'La propriété ListIndex renvoie -1 si aucune valeur de la liste déroulante n'a été sélectionnée
'sinon renvoie le numéro de la ligne sélectionnée en commençant par 0[/COLOR]
orga = ComboBox2.ListIndex + 1
mois = ComboBox3.ListIndex + 1
[COLOR="red"]'Si la valeur est 0, la méthode DropDown affiche la liste déroulante, Exit Sub met fin à la macro[/COLOR]
If orga = 0 Then ComboBox2.DropDown: Exit Sub
If mois = 0 Then ComboBox3.DropDown: Exit Sub
[COLOR="red"]'La fonction Val renvoie toujours un nombre, exemples : Val("a")=0, Val("")=0, Val("2,5")=2, Val("2.5")=2.5[/COLOR]
v1 = Val(Replace(TextBox1, ",", ".")) [COLOR="red"]'la virgule est remplacée par le point pour obtenir un nombre en VBA[/COLOR]
v2 = Val(Replace(TextBox2, ",", "."))
[COLOR="red"]'Si la valeur est 0, TextBox1 = "" vide la TextBox1, la méthode SetFocus y place le curseur[/COLOR]
If v1 = 0 Then TextBox1 = "": TextBox1.SetFocus: Exit Sub
If v2 = 0 Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
[COLOR="red"]'Offset décale la référence de la cellule B11 => vers le bas : numéro du mois, à droite : par pas de 2[/COLOR]
With Sheets("Emprunt").Range("B11").Offset(mois, 2 * (orga - 1))
  .Value = v1 [COLOR="red"]'entre dans la cellule définie le capital remboursé[/COLOR]
  .Offset(, 1) = v2 [COLOR="red"]'entre les intérêts remboursés dans la cellule à droite[/COLOR]
End With
Unload Me [COLOR="red"]'ferme l'USF (Me : c'est la feuille où se trouve le code)[/COLOR]
End Sub

Si vous désirez des informations complémentaires sur une expression, allez dans l'aide VBA (touche F1), c'est une bonne habitude à prendre.

A+
 
Dernière édition:
Re : Remplissage de cellules depuis userform (par rapport à une date)

Salut,

Merci bien pour cet explication c'est sympa je vais étudier.

La je vais comprendre ce que je vais écrire.

a++++🙂
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
19
Affichages
650
Réponses
22
Affichages
587
wDog66
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…