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

XL 2019 Use forme a modifier

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

berru76

XLDnaute Occasionnel
Bonjour
J'ai un Use forme utile qui fonctionnait dans mes petits programmes club
La structure est la même
Mais dans le nouveau projet la présentation se fait en tableaux donc cela ne s'affiche plus au bon endroit
Si vous voyer la solution
ci-joint un exemple
Merci de votre aide
 

Pièces jointes

Solution
Bonjour Berru, Nain Porte Quoi,
Dans un TDS, comme votre Tabel1, on ne peut accéder à la dernière ligne avec L = .Range("C" & Rows.Count).End(xlUp).Row + 1 car pour XL un TDS est un objet.
Cette ligne de code vous donnera la première ligne vide après votre TDS. C'est pour ça que vos entrées se mettent à la fin du tableau.

il faut passer par l'examen du TDS lui même.
En PJ j'ai remplacé :
VB:
L = .Range("C" & Rows.Count).End(xlUp).Row + 1
par
L = 1 + Application.CountIf([Tabel1[Noms]], "*")

.Range("C" & L) = Me.ComboBox1.Value
par
[Tabel1[Noms]].Item(L) = Me.ComboBox1.Value

.Range("D" & L) = "Payé"
par
[Tabel1[Payé]].Item(L) = "Payé"

.Range("D" & L) = "Non"
par
[Tabel1[Payé]].Item(L) = "Non"
Hello,

quand on utilise des tableaux (structurées, bien que MS n'utilise plus ce terme) il ne faut pas ajouter de lignes vides. En clair, réduisez votre tableau à sa partie congrues et laissez faire le reste

Ceci dit, la macro n'est plus vraiment adapté aux TS, je pense que quelques autres contributeurs pourront vous arranger ça
 
Bonjour Berru, Nain Porte Quoi,
Dans un TDS, comme votre Tabel1, on ne peut accéder à la dernière ligne avec L = .Range("C" & Rows.Count).End(xlUp).Row + 1 car pour XL un TDS est un objet.
Cette ligne de code vous donnera la première ligne vide après votre TDS. C'est pour ça que vos entrées se mettent à la fin du tableau.

il faut passer par l'examen du TDS lui même.
En PJ j'ai remplacé :
VB:
L = .Range("C" & Rows.Count).End(xlUp).Row + 1
par
L = 1 + Application.CountIf([Tabel1[Noms]], "*")

.Range("C" & L) = Me.ComboBox1.Value
par
[Tabel1[Noms]].Item(L) = Me.ComboBox1.Value

.Range("D" & L) = "Payé"
par
[Tabel1[Payé]].Item(L) = "Payé"

.Range("D" & L) = "Non"
par
[Tabel1[Payé]].Item(L) = "Non"
 

Pièces jointes

Merci a vous
Fonctionne très bien
 
Re,
En fait c'est la dernière cellule écrite en colonne C qui est sélectionnée.
Mais si vous voulez sélectionner une cellule précise en sortie d' USF, faites par ex :
VB:
Private Sub CommandButton2_Click()
  Unload Me
  Range("F5").Select
End Sub
Remplacez le "F5" pa ce que vous voulez.
et vous pouvez rajoutez dans l'usf :
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  If CloseMode = vbFormControlMenu Then   ' Fermeture usf qui vient de la croix
    Cancel = True
  End If
End Sub
pour empêcher la fermeture de l'usf par la croix mais uniquement par le bouton "Quitter"
 

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

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