Modif code userform

Résolu
jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   -  
jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Dans mon fichier j'ai ajouté une colonne en A.
Ce qui fait que mes colonnes sont décalées de 1.
Depuis cette modif mon user form ne fonctionne plus.
Ci-dessous dans la rubrique "on remplit les données du tableau"
j'ai fait la modif A devient B B devient C ainsi de suite....
Que faut-il modifier pour que mon userform refonctionne normalement
Cordialement

Private Sub UserForm_Activate()
' Combobox
For L = 1 To F02.Range("A" & Rows.Count).End(xlUp).Row
Cmb_Nom.AddItem F02.Range("A" & L)
Next

For L = 6 To F02.Range("N" & Rows.Count).End(xlUp).Row
Cmb_Paiement.AddItem F02.Range("N" & L)
Next
TxtDate.Locked = True
End Sub

Private Sub CmdDate_Click()
U_Calandar.Show 1
End Sub

Private Sub CmdAjouter_Click()
'on vérifie que les champs sont bien remplis
If Cmb_Nom.Text = "" Then
MsgBox "Veuillez renseigner le nom", vbCritical, "champs manquants"
Cmb_Nom.SetFocus
Exit Sub
End If
Nlig = F01.Range("A" & Rows.Count).End(xlUp).Row + 1
' on remplit les données dans le tableau
F01.Range("B" & Nlig).Value = DateValue(TxtDate.Text)
F01.Range("C" & Nlig).Value = UCase(Cmb_Nom.Text)
F01.Range("D" & Nlig).Value = UCase(Cmb_Paiement.Text)
F01.Range("E" & Nlig).Value = TxtEntrée.Text
F01.Range("F" & Nlig).Value = TxtSortie.Text
F01.Range("M" & Nlig).Value = UCase(TxtCommentaire.Text)
' on efface le formulaire et on replace le curseur sur la case ( Nom )
TxtDate.Text = ""
Cmb_Nom.Text = ""
Cmb_Paiement.Text = ""
TxtEntrée.Text = ""
TxtSortie.Text = ""
TxtCommentaire.Text = ""
TxtDate.SetFocus

5 réponses

  1. WeaponEDGE
     
    Bonjour,

    Qu'est ce que vous entendez par ne fonctionne plus ?

    Est ce qu'il démarre mais les combo box ne se remplisse pas ?

    Est ce qu'il fait un débugage et ce cas sur quelle ligne bug t'il ?

    Affiches t'il un autre message d'erreur ?
    0
  2. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    bonjour
    merci pour votre réponse
    Les combos box se remplissent bien le problème survient au moment ou je valide.
    toutes les combos s'effacent comme prévu mais rien ne s'inscrit dans les cellules
    concernées.
    Il n'a pas de messages d'erreur ni de bugs
    Cordialement
    0
  3. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
     
    Bonjour

    Il n'y a personne qui peut m'aider à solutionner mon problème?

    Cordialement
    0
  4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Peut être ne connait-il pas FO1...
    D'ailleurs, qu'est ce que FO1? Une feuille? Si oui, procédez comme ceci, en adaptant le nom de votre feuille, bien sur :

    Private Sub CmdAjouter_Click()
    Dim FO1 As Worksheet
    
    'on vérifie que les champs sont bien remplis
    If Cmb_Nom.Text = "" Then
        MsgBox "Veuillez renseigner le nom", vbCritical, "champs manquants"
        Cmb_Nom.SetFocus
        Exit Sub
    End If 
    
    'A ADAPTER : le nom de la feuille de restitution au lieu de Feuil1
    Set FO1 = Sheets("Feuil1")
    
    With FO1
        Nlig = .Range("A" & Rows.Count).End(xlUp).Row + 1
        ' on remplit les données dans le tableau
        .Range("B" & Nlig).Value = DateValue(TxtDate.Text)
        .Range("C" & Nlig).Value = UCase(Cmb_Nom.Text)
        .Range("D" & Nlig).Value = UCase(Cmb_Paiement.Text)
        .Range("E" & Nlig).Value = TxtEntrée.Text
        .Range("F" & Nlig).Value = TxtSortie.Text
        .Range("M" & Nlig).Value = UCase(TxtCommentaire.Text)
    End With
    ' on efface le formulaire et on replace le curseur sur la case ( Nom )
    TxtDate.Text = ""
    Cmb_Nom.Text = ""
    Cmb_Paiement.Text = ""
    TxtEntrée.Text = ""
    TxtSortie.Text = ""
    TxtCommentaire.Text = ""
    TxtDate.SetFocus
    End Sub
    0
    1. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
       
      bonsoir
      merci pour la réponse
      J'ai essayé mais le résultât est toujours pareil
      Cordialement
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,
      Dans le code donné ci-dessus, as tu bien changé cette ligne :
      'A ADAPTER : le nom de la feuille de restitution au lieu de Feuil1
      Set FO1 = Sheets("Feuil1")
      0
    3. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
       
      Bonjour
      je te joins un exemplaire
      fais un essai avec l'userform tu verras qu'il y a un problème
      que je n'arrive pas àrésoudre.
      Cordialement

      https://www.cjoint.com/?CFvlaVxUxor
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Tu n'as rien?
      Sur?
      Même pas en ligne 1000???

      1- va en ligne 1000 et efface les données qui se sont stockées là "par hasard",
      2- dans ta macro remplace :
      Nlig = .Range("A" & Rows.Count).End(xlUp).Row + 1

      par :
      Nlig = .Range("C" & Rows.Count).End(xlUp).Row + 1


      En fait, ta colonne A est complète jusqu'en ligne 1000, donc ta macro écrit par en dessous.......
      0
    5. jc80 Messages postés 5063 Date d'inscription   Statut Membre Dernière intervention   1 443
       
      re bonjour

      Merci pour ta réponse
      C'est de ma faute quand j'ai rajouté la colonne A ,j'ai glissé la formule jusqu'aux environs de la ligne 1000.sans changer Range A par Range C
      Cordialement
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. WeaponEDGE
     
    Bonjour,

    A quoi corresponde F01 et F02, ce sont le nom de tes feuilles 1 et 2 ?

    Si oui

    Remplace FO1 par sheets("FO1") et FO2 par sheets("FO2")
    0