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

Simplifier Code Userform

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

hypo78

XLDnaute Impliqué
Bonjour à tous,

j'ai un code dans un Userform du type :
Code:
Private Sub CommandButton1_Click()

'mise en mémoire du dernier numero de ligne non vide
ligne_bas = Range("A65536").End(xlUp).Row

'Basculement des données userform dans feuille excel
Range("A" & ligne_bas + 1).Value = TextBoxDate.Text

Range("B" & ligne_bas + 1).Value = CheckBox1.Value
If CheckBox1.Value = True Then
Range("B" & ligne_bas + 1) = "R"
Else
Range("B" & ligne_bas + 1).Value = ""
End If

Range("C" & ligne_bas + 1).Value = CheckBox2.Value
If CheckBox2.Value = True Then
Range("C" & ligne_bas + 1) = "R"
Else
Range("C" & ligne_bas + 1).Value = ""
End If


Range("D" & ligne_bas + 1).Value = CheckBox3.Value
If CheckBox3.Value = True Then
Range("D" & ligne_bas + 1) = "R"
Else
Range("D" & ligne_bas + 1).Value = ""
End If


End Sub

Dans l'exemple, je m'arrête à la colonneD, mais mon besoin est sur 35 colonnes (checkbox de 1 à 35) et ce sur plusieurs feuilles.

Je découvre les Userform depuis 5 jours, donc ma question, il y a-t-il moyen de simplifier ce code, ou dois-je taper les 35 codes x n-feuilles.

Merci d'avance.
 
Re : Simplifier Code Userform

Bonsoir


Oui, il suffit de boucler sur les contrôles

Tu trouveras sur le forum d'anciennes discussions qui illustrent cela.

Un exemple au hasard parmi beaucoup
https://www.excel-downloads.com/thr...e-tous-les-controles-150-dun-userform.172097/

PS: joindre un fichier exemple nous permet de tester nos propositions...

Comme je suis dans un bon jour
Inspires-toi du code ci-dessous
Code:
Private Sub CommandButton1_Click()
Dim i, j As Long
j = [A65536].End(xlUp)(2).Row
For i = 1 To 6 ' à adapter à ton cas
Cells(j, i) = IIf(Controls("CheckBox" & i), "R", vbNullString)
Next i
End Sub
 
Dernière édition:
Re : Simplifier Code Userform

Re,

effectivement çà fonctionne bien quand je colle ton code, mais sur mon fichier il me faut la date en colonne 1.
du coup j'ai un peu de mal à adapter ton code.
je vais mettre un petit exemple rapidemant.

Cordialement.

edit : c'est bon j'ai trouvé avec çà :
Code:
Private Sub CommandButton1_Click()
Dim i, j As Long
j = [A65536].End(xlUp)(2).Row
Cells(j, 1) = TextBoxDate.Value
For i = 2 To 8 ' à adapter à ton cas
Cells(j, i) = IIf(Controls("CheckBox" & i - 1), "R", vbNullString)
Next i
End Sub
 
Dernière édition:
Re : Simplifier Code Userform

Bonjour,
j'avance sur mon projet, et forcement d'autres questions se posent.

Situation : j'appelle mon Userform à partir d'un bouton (ARI) que l'on trouve sur tous les onglets (il y en aura 100 dans le projet définitif) .
L'Userform est composé de 2 multipages de chacun 3 pages et chaque page comporte 35 CheckBox.

Lorsque que l'on valide, les CheckBox envoi des infos sur des onglets (dossards ou masques).

Dans l'écriture de mon code, au moment de ce transfert, la feuille destinatrice devient active.

Ce que je souhaite, que l'utilisateur reste sur la feuille depuis lequel il a activé l'Userform.

En espérant avoir été clair.
 

Pièces jointes

- 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
8
Affichages
392
Réponses
4
Affichages
735
Réponses
5
Affichages
915
Réponses
9
Affichages
389
Réponses
7
Affichages
178
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…