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

UserForm modification et saisie

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

P

piwwwa

Guest
Cher connaisseur excelien,

Je viens vers vous car je suis bloquer sur mon projet. Jusque-là les différents poste du forum mon permit de bidouiller quelque chose, mais là….

Mon problème et quand je lance mon userform lié au bouton modification, j’arrive bien à faire ma sélection et à visualiser mes lignes, mais je ne sais pas comment importer les lignes que je vois dans l’userform de saisie, pour effectuer des modifications, n’y comment les enregistrer sans créer de nouvelles lignes.

Je suis sûr que vos connaissances bien plus étendu que les miennes pourront m’aider, merci d’avance.
 

Pièces jointes

Re : UserForm modification et saisie

Bonjour,
Un conseil, chaque fois que tu remplis ta liste,remplis un tableau qui contiendra ton numéro de ligne en rapport avec ta ligne sélectionnée de ta liste, pour pouvoir utiliser comme point de repaire de ta ligne à modifier
A+
 

Pièces jointes

Dernière édition:
Re : UserForm modification et saisie

Bonjour à tous et merci pour ton aide fhoest,

Je prends bonne note de ton conseil, par contre je ne voie toujours pas comment ramener les résultats qui s’affiche dans l’UserForm de saisie quand je clique sur modification, n’y comment ne pas les enregistrer sur une nouvelle ligne, mais bien modifier la ou les lignes.

Est-ce que je dois passer par un troisième UserFormqui serait une copie de l’UserForm de saisie ? Mais je reste toujours bloquer sur comment le remplir et remplacer les données.

Merci pour votre aide.
 
Re : UserForm modification et saisie

Merci pour ton aide,
Je viens de me rendre compte qu’à force de travailler sur ce projet je n’étais plus clair !!! En fait ce que je voudrais c’est que je puisse sélectionné les lignes dans la base par l’usf modification (comme c’est le cas actuellement), mais qu’après l’intégralité de leur contenu vienne ce coller dans l’usf de saisie (si il y a 13 nom les 13 noms remplisse les combobox 8 à 20 et pareil pour toute les infos). Ensuite si je modifie un élément quand je l’enregistre sa enregistre toutes les modif.
Merci encore pour ton aide.
 
Re : UserForm modification et saisie

Re,
je pense qu'avec ce que tu as déjà fait puis ce que je t'ai donné tu es capable d'avancer sur ton projet, reviens avec un projet plus avancé, pour d'autres modifications ,je pense qu'au moins tu dois être capable de remplir tes combobox et textbox
A+
 
Re : UserForm modification et saisie

Merci pour ton aide,

J’aurais encore deux questions pour pouvoir avancer, à partir du code qui te sert à remplir les textbox dans l’usf de modif :
wsFeuil.Range("F" & mes_lignes(ListBoxLoc.ListIndex)).Value = TextBox16.Text

Par ou est ce que je doit partir pour ne pas qu’il prenne la ligne séléctionnée mais toutes les lignes affiché ?
Et comment est-ce que je peux définir « ListBoxLoc » comment une variable dans un autre usf ?

Merci encore pour ton aide.
 
Re : UserForm modification et saisie

J’aurais encore deux questions pour pouvoir avancer, à partir du code qui te sert à remplir les textbox dans l’usf de modif :
wsFeuil.Range("F" & mes_lignes(ListBoxLoc.ListIndex)).Value = TextBox16.Text
Bonjour,
En fait c'est l'inverse:
Code:
Recherche.TextBox16.Text=wsFeuil.Range("F" & mes_lignes(ListBoxLoc.ListIndex)).Value
Tu dois faire une boucle ou remplir les combobox une par une (le mieux c'est une boucle)
A+
 
Dernière édition:
Re : UserForm modification et saisie

Merci pour ta réponse,

Je vais essayer de comprendre comment est ce que je peut écrire cette boucle, ou même comment est ce que je peut les récupérer une par une, et comment définir ListBoxLoc comme une variable.
 
Re : UserForm modification et saisie

Re,
un exemple pour les combobox
Code:
Private Sub CommandButton1_Click() ' A mettre sous le code bouton modification du USF Recherche
Dim mes_valeurs_listboxloc As Integer
With UserForm2
For mes_valeurs_listboxloc = 0 To Me.ListBoxLoc.ListCount - 1
.Controls("ComboBox" & 8 + mes_valeurs_listboxloc).Value = Me.ListBoxLoc.List(mes_valeurs_listboxloc, 0)
Next
End With
UserForm2.Show
End Sub
A+
 
Re : UserForm modification et saisie

Merci pour ton aide, j’ai commencé à regarder et je suis arrivé à remplir plusieurs combobox, je devrais m’en sortir pour ça, je verrais après si les textbox me pose problème ou pas.

Merci
 
Re : UserForm modification et saisie

Bonjour,

Je reviens vers vous ami du forum et fhoest car je rencontre un nouveau petit problème que je n’arrive pas à résoudre. En effet, même si mon projet avance bien, là je coince à nouveau. J’ai essayé de changer ton code fhoest permettent de remplir la listbox afin que celle-ci ne remplisse plus 9 colonnes mais pour l’instant 33, et à terme près de 70. Cependant j’obtiens une erreur : « Erreur d’exécution ‘380’ Impossible de définir la propriété List. Valeur de propriété non valide », quand je lance le code suivant :
Code:
Private Sub UserForm_Initialize()
    
    
    ' Définir la feuille
    Set wsFeuil = ThisWorkbook.Worksheets("Base")
    
    ' Initialiser les listes des critères
    Call InitCombo(wsFeuil, RechercheC1, "F")
    Call InitCombo(wsFeuil, RechercheC2, "I")
    
    ' Modif du 05/08 - Initialisation du nombre de colonnes dans la liste
    With ListBoxLoc
    .ColumnCount = 33
    End With

    
    ' Libérer l'instance
    Set wsFeuil = Nothing
End Sub

Private Sub RechercheC1_Change()
    ' Rechercher les données en fonction des critères sélectionnés
    Call Rechercher
End Sub

Private Sub Rechercher()
    ' Rechercher les données en fonction des critères 1 et 2
    Dim rCel As Range
    Dim lgLig As Long
    Dim lgLigDeb As Long
    
    Dim Critere1 As String
    Dim Critere2 As String
    Dim wsFeuil As Worksheet
    
    ' Définir la feuille
    Set wsFeuil = ThisWorkbook.Worksheets("Base")
    
    Critere1 = "*"
    If RechercheC1.Value <> "" Then Critere1 = RechercheC1.Value
    Critere2 = "*"
    If RechercheC2.Value <> "" Then Critere2 = RechercheC2.Value
    
    ListBoxLoc.Clear
    
    ' Boucle de la 2me à la dernière ligne de la feuille Feuil1
    For lgLigDeb = 2 To wsFeuil.Range("F" & wsFeuil.Cells.Rows.Count).End(xlUp).Row
        If wsFeuil.Range("F" & lgLigDeb).Value Like Critere1 And wsFeuil.Range("I" & lgLigDeb).Value Like Critere2 Then
            With ListBoxLoc
                .AddItem wsFeuil.Range("F" & lgLigDeb).Value
                .List(.ListCount - 1, 1) = wsFeuil.Range("B" & lgLigDeb).Value
                .List(.ListCount - 1, 2) = wsFeuil.Range("C" & lgLigDeb).Value
                .List(.ListCount - 1, 3) = wsFeuil.Range("D" & lgLigDeb).Value
                .List(.ListCount - 1, 4) = wsFeuil.Range("E" & lgLigDeb).Value
                .List(.ListCount - 1, 5) = wsFeuil.Range("F" & lgLigDeb).Value
                .List(.ListCount - 1, 6) = wsFeuil.Range("G" & lgLigDeb).Value
                .List(.ListCount - 1, 7) = wsFeuil.Range("H" & lgLigDeb).Value
                .List(.ListCount - 1, 8) = wsFeuil.Range("I" & lgLigDeb).Value
                .List(.ListCount - 1, 9) = wsFeuil.Range("J" & lgLigDeb).Value
                .List(.ListCount - 1, 10) = wsFeuil.Range("K" & lgLigDeb).Value
                .List(.ListCount - 1, 11) = wsFeuil.Range("L" & lgLigDeb).Value
                .List(.ListCount - 1, 12) = wsFeuil.Range("M" & lgLigDeb).Value
                .List(.ListCount - 1, 13) = wsFeuil.Range("N" & lgLigDeb).Value
                .List(.ListCount - 1, 14) = wsFeuil.Range("O" & lgLigDeb).Value
                .List(.ListCount - 1, 15) = wsFeuil.Range("P" & lgLigDeb).Value
                .List(.ListCount - 1, 16) = wsFeuil.Range("Q" & lgLigDeb).Value
                .List(.ListCount - 1, 17) = wsFeuil.Range("R" & lgLigDeb).Value
                .List(.ListCount - 1, 18) = wsFeuil.Range("S" & lgLigDeb).Value
                .List(.ListCount - 1, 19) = wsFeuil.Range("T" & lgLigDeb).Value
                .List(.ListCount - 1, 20) = wsFeuil.Range("U" & lgLigDeb).Value
                .List(.ListCount - 1, 21) = wsFeuil.Range("V" & lgLigDeb).Value
                .List(.ListCount - 1, 22) = wsFeuil.Range("W" & lgLigDeb).Value
                .List(.ListCount - 1, 23) = wsFeuil.Range("Y" & lgLigDeb).Value
                .List(.ListCount - 1, 24) = wsFeuil.Range("Z" & lgLigDeb).Value
                .List(.ListCount - 1, 25) = wsFeuil.Range("AA" & lgLigDeb).Value
                .List(.ListCount - 1, 26) = wsFeuil.Range("AB" & lgLigDeb).Value
                .List(.ListCount - 1, 27) = wsFeuil.Range("AC" & lgLigDeb).Value
                .List(.ListCount - 1, 28) = wsFeuil.Range("AD" & lgLigDeb).Value
                .List(.ListCount - 1, 29) = wsFeuil.Range("AE" & lgLigDeb).Value
                .List(.ListCount - 1, 30) = wsFeuil.Range("AF" & lgLigDeb).Value
                .List(.ListCount - 1, 31) = wsFeuil.Range("AG" & lgLigDeb).Value
                .List(.ListCount - 1, 32) = wsFeuil.Range("AH" & lgLigDeb).Value
                .List(.ListCount - 1, 33) = wsFeuil.Range("AI" & lgLigDeb).Value
                .List(.ListCount - 1, 34) = lgLigDeb
                ReDim Preserve mes_lignes(lgLig)
                mes_lignes(lgLig) = lgLigDeb
                lgLig = lgLig + 1
            End With
        End If
    Next lgLigDeb
    'exemple à retirer
   ' For i = LBound(mes_lignes) To UBound(mes_lignes)
   ' MsgBox "remplissage tableau ligne = " & mes_lignes(i)
   ' Next
    ' Libérer l'instance de la feuille
    Set wsFeuil = Nothing
End Sub


Merci d’avance pour votre aide.
 
Re : UserForm modification et saisie

Bonjour,
Est ce que dans le code c'est volontaire d'avoir oublié la colonne X car c'est genant.
pour pouvoir utiliser la listox avec plus de 10 colonnes ,il faut impérativement passer par un tableau.
Si c'est un oubli c'est super dis le moi et je ferais le code
A+
 
Re : UserForm modification et saisie

Bonjour,

Cela devait surement être un oubli de ma part, mais j’ai réussi à un peut avancer mon code (cf. lien), mais il me reste toujours des problèmes. En effet, maintenant ma listbox m’affiche bien mes 72 colonnes à l’ouverture, mais je n’arrive à remplir qu’une de mes trois combobox de filtre, et des que je sélectionne un filtre je n’est plus 72 colonnes d’affichées mais ma première colonne devient le critère du filtre.

(c) CJoint.com, 2012

Merci pour ton aide.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
4
Affichages
1 K
harry226h
H
D
Réponses
3
Affichages
956
D
P
Réponses
0
Affichages
1 K
P
V
Réponses
4
Affichages
1 K
VeBoA
V
V
Réponses
4
Affichages
1 K
V
P
Réponses
0
Affichages
641
P
G
Réponses
5
Affichages
2 K
gadget
G
D
Réponses
2
Affichages
861
D
Réponses
4
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…