UserForm modification de données

Bonjour,

J'ai un assez gros fichier dzl mais mon UserForm nécessite pas mal de données.

Je suis novice en VBA ce que je vous joins est mon premier code en VBA donc soyez gentil ^^

Le principe est celui d'un formulaire de saisie classique sauf que dans mon cas c'est pour gérer des stages de formations.

Je sélectionne un nom, un stage et j'indique la date et je coche une des 3 OptionButton (Inscrit, Présent, Absent).

Si c'est une incription pas de soucis j'ajoute une nouvelle ligne à la suite de la précédente et zou !!

Par contre, là où je bloque c'est pour la modification de données...J'ai un deuxième UserForm dans lequel je souhaite faire les modifications mais là je bloque.... J'ai marqué ce que je souhaite faire dans l'onglet de mon fichier.

Par avance merci à vous !!!!

Edit -----------------------------------------------

Le bon fichier est en dessous

Bonjour

lerbofiwol a écrit :

J'ai un deuxième UserForm

Où est-il ? Je n'en trouve qu'un seul...

J'ai marqué ce que je souhaite faire dans l'onglet de mon fichier.

Où ça ? Sur quel onglet ? Je ne trouve rien nulle part...

Bye !

Voici le bon fichier dzl je me suis planté..

Bonjour

Déjà répondu....https://forum.excel-pratique.com/excel/userform-modification-de-donnees-t74698.html

Les optionButton fonctionnent dans le dernier fichier.

Dzl mais c'est incompréhensible ce que tu as fait 1000...

Donc pour résumer :

Le formulaire comprend deux listes déroulantes avec choix en cascade (Combobox1 ET 2), ce qui te permettra, si il y a plusieurs NOMS identiques dans la colonne NOM, de faire la sélection par le Prénom.

Dans le programme, ce choix en cascade est défini :

a) Dans initialize par :

With Me.ComboBox2
      .ColumnCount = 2
      .ColumnWidths = "-1;0"
    End With
InitCombo1 'Lance le programme InitCombo1 développé ci-desous

b) Alimentation de la Combobox1

Sub InitCombo1()
Dim J As Long
Dim Mondico As Object

  Set Mondico = CreateObject("Scripting.dictionary")
  For J = 2 To NbLignes
    Mondico(Ws.Range("A" & J).Value) = ""
  Next J
  With Me.ComboBox1
    .Clear
    If Mondico.Count > 0 Then
      .List = Application.Transpose(Mondico.keys)
    End If
  End With
End Sub

c) Dès lors que le choix est effectué dans la Combobox1 => alimentation de la Combobox2

Private Sub ComboBox1_Change()
Dim J As Long

  Me.ComboBox2.Clear   'Efface les données de la combobox2
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  With Me.ComboBox2
    For J = 2 To NbLignes
      If Ws.Range("A" & J) = Me.ComboBox1 Then
        .AddItem Ws.Range("B" & J)
        .List(.ListCount - 1, 1) = J
      End If
    Next J
  End With

End Sub

d) Après choix dans la Combobox2 alimentation du formulaire pour toutes les texbox et valeur des OptionButton en fonction des donnés de la TB7

Private Sub ComboBox2_Change()
Dim Ligne As Long
Dim i As Integer

    If Me.ComboBox2.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
  For i = 1 To 8
    Me.Controls("TB" & i) = Ws.Cells(Ligne, i + 2)
  Next i

  If TB7 = "Inscrit" Then
  inscrit.Value = True
  ElseIf TB7 = "Présent" Then
  present.Value = True
  ElseIf TB7 = "Absent" Then
  absent.Value = True
  End If

End Sub

L'ordre des Combobox et TextBox (Renommées TB => Explications ici https://cellulexcel.blogspot.fr/p/excel-creer-un-formulaire-complexe.html) en ligne 3

Sur mon blog à cette page https://cellulexcel.blogspot.fr/p/qui-na-pas-un-jour-utilise-loption.html, tu as déjà des explications basiques pour la création d'un formulaire.... un peu de lecture t'aidera à comprendre la programmation.

Ne t'inquiètes pas ce n'est pas compliqué et il y a tous les jours des lecteurs qui me remercient pour la clarté des explications... donc je pense que c'est à la portée de tout le monde .... Bon courage.

et1000lio....je n'ai pas besoin d'une pub pour un blog qui t'apprend à faire du copier coller ! Si j'ai fermé mon précédent post c'est car ta solution ne me convient pas du tout malgrès de nombreux essais !!

De plus, dans ton blog tu n'expliques que les parties "faciles" des codes VBA présents !! Tout se qui est complexe et qui permet de rechercher les noms dans tel ou tel colonne de le rebalancer dans la ComboBox de lier une autre en cascade avec la première et récupérer les infos en fonction du choix de la première ComboBox rien de tout celà est dit !!!

Alors s'il te plaît laisse quelqu'un d'autre me proposer une solution !!! Je suis encore obligé de fermer le sujet pour en rouvrir un autre pour que quelqu'un d'autre puisse m'aider !!

Par ailleurs, si je transmet ma question sur ce forum c'est parce que j'ai regardé ailleurs auparavant et que malgrès tout je n'ai pas réussi !! Ce forum par sa communauté propose une aide adaptée à ton besoin. Je n'ai encore une fois nul besoin d'être redirigé vers un quelconque blog pour augmenter le nombre de visite de celui-ci.

Rechercher des sujets similaires à "userform modification donnees"