Aide sur userform et une base de donnée

Bonjour à tous,

me voilà encore pour vous demander de l'aide car je suis vraiment bloqué, j'ai userform avec un ComboBox1 ou il prend les noms des personnes saisie dans la colonne (E), mais le souci elle ne prend pas à partir de la cellule (E8), mais elle prend de la première cellule, j'ai essayer de changé un peu le code mais je n'arrive pas :

Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim i As Integer
   If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For i = 1 To 78
    Me.Controls("TextBox" & i) = Ws.Cells(Ligne, i)
  Next i
End Sub

en deuxième partie je souhaite mettre une formule (DATEDIF) sur des cellules (Q8,R8,BN8,BQ8,BT8,BW8,BZ8), mon souci quand je saisie par exemple une date sur P8 dans uersform elle doit me mettre automatiquement ce que je souhaite sur la cellule Q8 une fois valider ou modifier userform

je veux joint ma base de donnée merci encore pour votre aide

bien cordialement

Bonjour Judo le forum

tu modifies comme cela

a+

Papou

Private Sub UserForm_Initialize() 'à l'initialisation de l'userform
Dim J As Long 'déclare la variable J
Dim i As Integer

  Set Ws = Sheets("DONNEES") 'Attention ce nom doit correspondre au nom de votre ONGLET
'On stock le nom de la feuille "FICHIER ADRESSES" dans une variable nommée WS

  With Me.ComboBox1
    For J = 8 To Ws.Range("E" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("E" & J)
    Next J
  End With

Bonjour,

Pour ta première requête, dans le module Private Sub UserForm_Initialize() change l'index du début 2 en 8 dans le code suivant :

  With Me.ComboBox1
    For J = 2 To Ws.Range("E" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("E" & J)
    Next J
  End With

Re Judo le forum

est aussi tous les index de définition de ligne et aussi de F comme ci-dessous

a+

Papou

Ligne = Me.ComboBox1.ListIndex + 8

merci beaucoup paritec et Raja,

est ce que vous savez comment je peux remédier le problème de DATEDIF avec userform??

merci encore pour votre aide

Re,

Il faut revoir et refaire ton formulaire. Par exemple, le TextBox 17 qui correspond aux données de la colonne Q ne sert à rien car ces données se calculent par rapport à ce qui sont saisies au TextBox 16. Donc, ça ne sert à rien de le renseigner.

Par contre, dans le module Private Sub CommandButton5_Click(), il faudra remplacer la ligne suivante :

Range("Q" & L).Value = TextBox17

comme celle-ci :

Range("Q" & L).FormulaLocal = "=DATEDIF(P" & L & " ; AUJOURDHUI(); ""y"") & "" an(s) "" & DATEDIF(P" & L & "; AUJOURDHUI();""ym"") & "" mois et "" & DATEDIF(P" & L & "; AUJOURDHUI(); ""md"") & "" jour(s)"""

Pour le reste des cellules avec formules la même logique (cf. caractères surlignés à adapter).

A tester

NB : La formule a été reprise à partir de ton classeur.

merci Raja,

j'ai essayer pour le rangé (Q,R) mais sa pas marcher!?

est ce que le VBA supporte les intervals "ym" et "md"? tu n'a pas une autre idée?

Il faut revoir et refaire ton formulaire.

je doit supprimer dans ce cas les Text Box 17, Text Box 18, etc....

merci encore

cordialement

49test.xlsm (21.77 Ko)

Re,

Vérifie d'abord si l'insertion d'un nouvel enregistrement se passe bien. Je ne vois pas d'autres problèmes. Je t'envoie un fichier test

dans lequel j'ai ajouté un code simple de test qui fonctionne bien. Teste-le tu verras. Maintenant, c'est à toi de l'adapter à ton cas.

Merci beaucoup Raja super sa marche très bien

une dernière chose s'il vous plait si vous pouvez m'aidez, j'ai deux dossier avec des feuilles PDF une qui correspond au test sportif et l'autre correspond au visite médical pour chaque personnels de cette base, c'est pour ça je souhaite ajouter deux CommandButton dans userform la partie "Aptitude CCPM, c'est deux CommandButton font appel à ces feuilles qui correspond au noms choisi dans l'userform!!

je ne sais pas si c'est possible ou non, mais si vous avez une aidée je suis preneur

merci encore pour ton temps consacré pour moi et ton aide précieuse

bien cordialement

Rechercher des sujets similaires à "aide userform base donnee"