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

ligne de formulaire

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

roybaf

XLDnaute Occasionnel
Bonjour tout le monde,

J'ai un souci avec un code, il recopie des lignes saisie dans mon formulaire et les intègres à ma feuille

mais une ligne ne se remplie pas:

Code:
Private Sub suivant2_Click()
Dim NLig As Long
 
    With Sheets("DONNEES")
    
        NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
      .Range("A" & NLig) = ComboBox13.Value
      .Range("b" & NLig) = TextBox21.Value
            If ComboBox13.Value = "" Then
            Else: .Range("c" & NLig) = TextBox22.Value
            End If
            With Sheets("DONNEES")
              NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
              .Range("A" & NLig) = ComboBox1.Value
              .Range("b" & NLig) = TextBox18.Value
                    If ComboBox1.Value = "" Then
                    Else: .Range("c" & NLig) = TextBox22.Value
                    End If
                    With Sheets("DONNEES")
                    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
                    .Range("A" & NLig) = ComboBox2.Value
                    .Range("b" & NLig) = TextBox15.Value
                        If ComboBox2.Value = "" Then
                        Else: .Range("c" & NLig) = TextBox22.Value
                        End If
                        With Sheets("DONNEES")
                        NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
                        .Range("A" & NLig) = ComboBox14.Value
                        .Range("b" & NLig) = TextBox23.Value
                            If ComboBox14.Value = "" Then
                            Else: .Range("c" & NLig) = TextBox22.Value
                            End If
                            With Sheets("DONNEES")
                            .Range("A" & NLig) = ComboBox4.Value
                            .Range("b" & NLig) = TextBox9.Value
                                If ComboBox4.Value = "" Then
                                Else: .Range("c" & NLig) = TextBox22.Value
                                End If
                                With Sheets("DONNEES")
                                NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
                                .Range("A" & NLig) = ComboBox5.Value
                                .Range("b" & NLig) = TextBox6.Value
                                    If ComboBox5.Value = "" Then
                                    Else: .Range("c" & NLig) = TextBox22.Value
                                    End If
                                    With Sheets("DONNEES")
                                    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
                                    .Range("A" & NLig) = ComboBox6.Value
                                    .Range("b" & NLig) = TextBox3.Value
                                        If ComboBox6.Value = "" Then
                                        Else: .Range("c" & NLig) = TextBox22.Value
                                        End If
    End With
    End With
    End With
    End With
    End With
    End With
    End With

Il s'agit de celle
HTML:
]With Sheets("DONNEES")
                        NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
                        .Range("A" & NLig) = ComboBox14.Value
                        .Range("b" & NLig) = TextBox23.Value
                            If ComboBox14.Value = "" Then
                            Else: .Range("c" & NLig) = TextBox22.Value
                            End If
, qui correspond à la ligne 4 de mon USF içi en PJ

En PJ une image de mon userform, le fichier est beaucoup trop lourd et trop de données confidentielles pour le mettre sur le forum..

Merci d'avance.
 

Pièces jointes

  • salaire.jpg
    39.5 KB · Affichages: 75
Dernière édition:
Re : ligne de formulaire

Salut Roybaf 😉

Pourquoi répéter With !?

De plus quand tu n'exécutes aucune action dans une condition, autant inverser celle-ci

Voici le code à tester
Code:
Private Sub suivant2_Click()
  Dim NLig As Long


  With Sheets("DONNEES")
    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox13.Value
    .Range("b" & NLig) = TextBox21.Value
    If ComboBox13.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox1.Value
    .Range("b" & NLig) = TextBox18.Value
    If ComboBox1.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox2.Value
    .Range("b" & NLig) = TextBox15.Value
    If ComboBox2.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox14.Value
    .Range("b" & NLig) = TextBox23.Value
    If ComboBox14.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox4.Value
    .Range("b" & NLig) = TextBox9.Value
    If ComboBox4.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox5.Value
    .Range("b" & NLig) = TextBox6.Value
    If ComboBox5.Value <> "" Then .Range("c" & NLig) = TextBox22.Value


    NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & NLig) = ComboBox6.Value
    .Range("b" & NLig) = TextBox3.Value
    If ComboBox6.Value <> "" Then .Range("c" & NLig) = TextBox22.Value
  End With
End Sub

A+
 
Re : ligne de formulaire

Bonjour roybaf

il est joli ton userform je pense qu'il pourrait y avoir une erreur au niveau de ComboBox 14 car en suivant la logique du code présenté plus haut, il pourrait s'agir du ComboBox 3

ou alors c'est peut-être à cause ce cette ligne manquante dans le 5ème niveau ----> With Sheets("DONNEES")
NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row

mais sans voir le fichier, difficile de pouvoir répondre avec précision

à+
Philippe

Édit: Bonjour Bruno
 
Re : ligne de formulaire(résolu)

merci vous deux, bruno ton code fonctionne nikel!!! et phlaurent avais raison j'ai zapé la ligne NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row.

merci encore un problème résolu grâce à vous!!

Pourriez vous me dire quel est le code à entrer dans ma combo pour intégrer une liste nommée car j'ai une plage de cellule dans la rowsource de mon CB mais il y a des vides.

Merci résolu
 
Dernière édition:
Re : ligne de formulaire(résolu)

merci vous deux, bruno ton code fonctionne nikel!!! et phlaurent avais raison j'ai zapé la ligne NLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row.

merci encore un problème résolu grâce à vous!!

Pourriez vous me dire quel est le code à entrer dans ma combo pour intégrer une liste nommée car j'ai une plage de cellule dans la rowsource de mon CB mais il y a des vides.

Merci résolu
merci à tous!
 
Re : ligne de formulaire

Re,

une boucle dans la zone des données, tester les non-vides

ComboBox.AddItem

je peux poster un fichier exemple mais dans 1/2h ........ Patience


à+
Philippe
 
Dernière édition:
Re : ligne de formulaire

Code:
Private Sub masse_Click()
salaire.TextBox22.Value = Me.TextBox11.Value
salaire.Show
Dim cellule As Range
With Sheets("SALARIE")
    For Each cellule In Range("A7:A" & Range("A65535").End(xlUp).Row)
    If cellule <> "" Then
    salaire.ComboBox1.AddItem cellule
    salaire.ComboBox2.AddItem cellule
    salaire.ComboBox14.AddItem cellule
    salaire.ComboBox4.AddItem cellule
    salaire.ComboBox5.AddItem cellule
    salaire.ComboBox6.AddItem cellule
    End If
With Sheets("ASSOCIE")
    For Each cellule In Range("A7:A" & Range("A65535").End(xlUp).Row)
    If cellule <> "" Then
    salaire.ComboBox13.AddItem cellule
    End If
Next cellule
End With
End With
End Sub

J'ai essayer d'adapter ton code mais sa ne fonctionne pas, mes listes sont vides. j'ai bien supprimé les rowsource des comboboxs.

Je suis vraiment pas doué en vba...
 
- 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 worksheet_change
Réponses
29
Affichages
497
Réponses
10
Affichages
284
Réponses
4
Affichages
464
Réponses
8
Affichages
235
Réponses
2
Affichages
157
Réponses
1
Affichages
181
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…