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

Microsoft 365 Remplissage selon Userform

FCMLE44

XLDnaute Impliqué
Bonjour

Dans le fichier joint, je souhaite paramétrer mon userform 2, et en fonction des données inscrites dans ce userform, les transférer dans un tableau apparaissant dans la feuille Courriers Salariés. J'ai préparé les userform et le premier est déjà codé

Je vous indique les explications dans le fichier joint

Merci
 

Pièces jointes

  • Classeur1.xlsm
    172.8 KB · Affichages: 16
Solution
Bonjour FCMLE, bonjour le forum,

Pour la gomme :

VB:
Private Sub CommandButton4_Click()
Dim CTRL As Control

'effacer
If MsgBox("Si vous effacez, vous perdrez toutes les données figurant sur les courriers." & " Etes-vous sûr de vouloir continuer?", vbYesNo + vbCritical, "Effacement des données du courrier") = vbNo Then Exit Sub
For Each CTRL In Me.Controls
    If TypeOf CTRL Is MSForms.TextBox Or TypeOf CTRL Is MSForms.ComboBox Then CTRL.Value = ""
Next CTRL
'Unload Montants
End Sub

Pour les lignes à masquer (même si j'avoue que je ne comprends pas bien ta requête) :

Code:
Sub masquer_ligne_Vide()
Dim O As Worksheet
Dim cel As Range

Set O = Worksheets("Courriers Salariés")
For Each cel In O.Range("B2:B10,B13:B14")
    If...

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour consonnes et voyelle, bonjour le forum,

Difficile de t'aider, ça plante dès que l'on clique dans la ComboBox1 de la première UserForm :

VB:
ComboBox1.List = Feuil2.Range("A2:A" & Feuil2.[A1000].End(3).Row).Value
 

FCMLE44

XLDnaute Impliqué
Bonjour

Alors j'ai essayé d'avancer seul

Lorsque je clique sur mon userform2 et que je remplis la case montant et les montants se mettent à jour automatiquement au fil de l'eau dans la feuil1 colonne B
J'aimerais maintenant pouvoir ajouter les choses suivantes
- A l'aide du bouton gomme les éléments de mon userform2 en cas d'erreur
- copier coller les lignes du tableau ainsi remplies dans la feuille courrier en A83 et A141 en masquant les lignes dont les montants sont à zéro

Cordialement
 

Pièces jointes

  • Classeur1 (4).xlsm
    129.4 KB · Affichages: 8
Dernière édition:

FCMLE44

XLDnaute Impliqué
Je viens de réussir en écrivant ceci

Code:
Sub masquer_ligne_Vide()
Dim cel As Range
For Each cel In Range("B2:B10,B13:B14")
If cel = "" Then
cel.EntireRow.Hidden = True
End If
Next
End Sub

mais si toutes les lignes sont masquées en dessous de la ligne 14 alors je souhaiterais qu'il supprime dans ce cas les lignes 13 et 14

Me restera a faire le copier coller et l'ajouter à cette macro.

Mais là je sèche si vous avez une piste, pourriez-vous m'en faire part ?

Merci
 

Pièces jointes

  • classeur1-4 (1).xlsm
    107.6 KB · Affichages: 11

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour FCMLE, bonjour le forum,

Pour la gomme :

VB:
Private Sub CommandButton4_Click()
Dim CTRL As Control

'effacer
If MsgBox("Si vous effacez, vous perdrez toutes les données figurant sur les courriers." & " Etes-vous sûr de vouloir continuer?", vbYesNo + vbCritical, "Effacement des données du courrier") = vbNo Then Exit Sub
For Each CTRL In Me.Controls
    If TypeOf CTRL Is MSForms.TextBox Or TypeOf CTRL Is MSForms.ComboBox Then CTRL.Value = ""
Next CTRL
'Unload Montants
End Sub

Pour les lignes à masquer (même si j'avoue que je ne comprends pas bien ta requête) :

Code:
Sub masquer_ligne_Vide()
Dim O As Worksheet
Dim cel As Range

Set O = Worksheets("Courriers Salariés")
For Each cel In O.Range("B2:B10,B13:B14")
    If cel = "" Then cel.EntireRow.Hidden = True
Next
If O.Rows(14 & ":" & Application.Rows.Count).Hidden = True Then O.Rows(13 & ":" & 14).Hidden = True
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…