UserForm remplissage tableau ne fonctionne pas

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

saggigo

XLDnaute Occasionnel
Bonjour à tous,
je vous remercie d'avance pour votre aide.
Voilà j'ai une feuille excel avec un useform pour remplir un tableau, mais ce dernier ne fonctionne plus.

pourriez-vous s'il vous plait voir c'est quoi le problème, j'ai tout essayé mais je bloque.

la feuille excel est en pièce joint.

Merci pour beaucoup pour votre aide.
 

Pièces jointes

Re : UserForm remplissage tableau ne fonctionne pas

Bonjour Saggigo

Mama mia, ça m'arrache les yeux icon_eek.gif quand je vois ça
Code:
  With Sheets("Monitoring DF&PID")
    Set shtJT = ActiveWorkbook.Sheets("Monitoring DF&PID")
    'Worksheets("Monitoring DF&PID").Activate
    X = shtJT.Cells(Rows.Count, "C").End(xlUp).Row + 1
    shtJT.Range("A" & X) = Me.Txb_client
    shtJT.Range("B" & X) = CLng(Me.Cmb_CC_SAP)
    shtJT.Range("C" & X) = Me.DTPicker1
    shtJT.Range("D" & X) = CSng(Me.Txb_BC_HT)
    shtJT.Range("F" & X) = Me.DTPicker2
    shtJT.Range("G" & X) = CLng(Me.Txb_ExWorks)
    shtJT.Range("H" & X) = Me.DTPicker1 + Me.Cmb_Delais_Livr
  End With
On ne peut pas à minima essayer de comprendre ce qu'on fait !?

Code:
With Sheets("Monitoring DF&PID")
Indique que tu vas travailler avec l'objet conteneur feuille "Monitoring DF&PID"

Code:
Set shtJT = ActiveWorkbook.Sheets("Monitoring DF&PID")
Indique que tu définis un objet qui est la même feuille 😕😛

Le code devrait être
Code:
Private Sub Valider_Click()
  Dim X As Long
  Dim shtJT As Worksheet
  If Me.Txb_client = "" Then
    MsgBox "Il faut un client !", vbCritical, "Erreur saisie"
    Me.Txb_client.SetFocus
    Exit Sub
  End If
  With Sheets("Monitoring DF&PID")
    X = .Cells(Rows.Count, "C").End(xlUp).Row + 1
    .Range("A" & X) = Me.Txb_client
    .Range("B" & X) = CLng(Me.Cmb_CC_SAP)
    .Range("C" & X) = Me.DTPicker1
    .Range("D" & X) = CSng(Me.Txb_BC_HT)
    .Range("F" & X) = Me.DTPicker2
    .Range("G" & X) = CLng(Me.Txb_ExWorks)
    .Range("H" & X) = Me.DTPicker1 + Me.Cmb_Delais_Livr
  End With
  'Remise à 0 de l'USF, sauf date de transfert du BC
  Me.Txb_client = ""
  Me.Txb_BC_HT = ""
  Me.Txb_ExWorks = ""
  Me.Cmb_Delais_Livr = ""
  Me.Txb_client.SetFocus
  ' mettre le curseur sur la Combobox client
  Me.Txb_client.SetFocus
End Sub

Ensuite avec X tu vas chercher la dernière ligne de libre à partir de tout en bas de la feuille,
donc systématiquement en dessous de celles qui existent déjà 😉

A+
 
Dernière modification par un modérateur:
Re : UserForm remplissage tableau ne fonctionne pas

Bon voilà le fichier réparé pour que ça fonctionne
 

Pièces jointes

Re : UserForm remplissage tableau ne fonctionne pas

Bon voilà le fichier réparé pour que ça fonctionne

Merci beaucoup Gilbert pour ton aide, mais apparemment, lorsque je supprime toutes les lignes, et que j'entre une nouvelle donnée, mon tableau commence en dessous de la dernière lignes précédemment créée, c'est comme si il mémorisait quelles ont été les dernières lignes avant la suppression.
j'ai supprimé la ligne que tu avais crée ainsi que la mienne (que j'avais crée pour le test) et lorsque j'en créer une nouvelle, il laisse deux lignes vides et commence à la troisième.

est-ce un réglage dans mon excel?
 

Pièces jointes

Re : UserForm remplissage tableau ne fonctionne pas

Bonjour Saggigo

Mama mia, ça m'arrache les yeux Regarde la pièce jointe 339211 quand je vois ça
Code:
  With Sheets("Monitoring DF&PID")
    Set shtJT = ActiveWorkbook.Sheets("Monitoring DF&PID")
    'Worksheets("Monitoring DF&PID").Activate
    X = shtJT.Cells(Rows.Count, "C").End(xlUp).Row + 1
    shtJT.Range("A" & X) = Me.Txb_client
    shtJT.Range("B" & X) = CLng(Me.Cmb_CC_SAP)
    shtJT.Range("C" & X) = Me.DTPicker1
    shtJT.Range("D" & X) = CSng(Me.Txb_BC_HT)
    shtJT.Range("F" & X) = Me.DTPicker2
    shtJT.Range("G" & X) = CLng(Me.Txb_ExWorks)
    shtJT.Range("H" & X) = Me.DTPicker1 + Me.Cmb_Delais_Livr
  End With
On ne peut pas à minima essayer de comprendre ce qu'on fait !?

Code:
With Sheets("Monitoring DF&PID")
Indique que tu vas travailler avec l'objet conteneur feuille "Monitoring DF&PID"

Code:
Set shtJT = ActiveWorkbook.Sheets("Monitoring DF&PID")
Indique que tu définis un objet qui est la même feuille 😕😛

Le code devrait être
Code:
Private Sub Valider_Click()
  Dim X As Long
  Dim shtJT As Worksheet
  If Me.Txb_client = "" Then
    MsgBox "Il faut un client !", vbCritical, "Erreur saisie"
    Me.Txb_client.SetFocus
    Exit Sub
  End If
  With Sheets("Monitoring DF&PID")
    X = .Cells(Rows.Count, "C").End(xlUp).Row + 1
    .Range("A" & X) = Me.Txb_client
    .Range("B" & X) = CLng(Me.Cmb_CC_SAP)
    .Range("C" & X) = Me.DTPicker1
    .Range("D" & X) = CSng(Me.Txb_BC_HT)
    .Range("F" & X) = Me.DTPicker2
    .Range("G" & X) = CLng(Me.Txb_ExWorks)
    .Range("H" & X) = Me.DTPicker1 + Me.Cmb_Delais_Livr
  End With
  'Remise à 0 de l'USF, sauf date de transfert du BC
  Me.Txb_client = ""
  Me.Txb_BC_HT = ""
  Me.Txb_ExWorks = ""
  Me.Cmb_Delais_Livr = ""
  Me.Txb_client.SetFocus
  ' mettre le curseur sur la Combobox client
  Me.Txb_client.SetFocus
End Sub

Ensuite avec X tu vas chercher la dernière ligne de libre à partir de tout en bas de la feuille,
donc systématiquement en dessous de celles qui existent déjà 😉

A+

Bonjour Bruno et merci pour ta réponse,
la feuille que tu m'a envoyé ne fonctionne pas, elle bug ici:
code:
X = .Cells(Rows.Count, "C").End(xlUp).Row + 1
 
Re : UserForm remplissage tableau ne fonctionne pas

Merci beaucoup Gilbert pour ton aide, mais apparemment, lorsque je supprime toutes les lignes, et que j'entre une nouvelle donnée, mon tableau commence en dessous de la dernière lignes précédemment créée, c'est comme si il mémorisait quelles ont été les dernières lignes avant la suppression.
j'ai supprimé la ligne que tu avais crée ainsi que la mienne (que j'avais crée pour le test) et lorsque j'en créer une nouvelle, il laisse deux lignes vides et commence à la troisième.

est-ce un réglage dans mon excel?
regarde en colonne Y et supprimes les numéros

Regarde la pièce jointe 945084
 

Pièces jointes

  • sup.png
    sup.png
    4.8 KB · Affichages: 36
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

  • Question Question
Microsoft 365 Formule
Réponses
3
Affichages
174
Réponses
2
Affichages
159
Réponses
2
Affichages
156
Retour