User form incrémenter données + recherche

Bonjour à toute la communauté =),

J'ai réaliser une userform pour afficher un formulaire qui incrémente automatique les données dans une base de données.

Le problème c'est que je bloque je ne comprend pas mon erreur.

J'aimerais que toutes les informations de ma UserForm puisse s'incrémenter dans ma BDD et j'aimerais que grâce à une référence je puisse avoir toutes les informations sur cette UserForm.

J'espère avoir été claire. =)

Voici le fichier :

Merci par avance pour votre aide.

Julie S

Bonjour

Vous parlez d'une erreur mais quelle erreur avez vous ?

Quelle est la colonne correspondant à la combobox cboactions ? Dans la macro Initialize vous mettez la colonne A en référence alors que dans cette colonne vous n'avez aucune donnée..

Autre question : à quoi sert ceci --> optNouveau.Value = True dans la sub Initialize ?

Cordialement

Bonjour à tous,

En codant, il faut quand même faire attention aux références ...

Colonne A est vide > tu ne peux donc pas y trouver la dernière ligne des données.

Incrémenter la référence > la référence est en colonne C.

Je t'ai dépanné un bout ... regarde cela ...

N'oublie pas le pas-à-pas (touche F8) et le point d'arrêt (touche F9) pour dépanner du code ... c'est très facilitant ...

ric

Bonjour merci pour vos réponses et votre aide.

J'ai également fait des modifications mais les données ne se copient pas dans ma base de données. Savez-vous pourquoi ?

Voici le fichier ci-après :

Merci pour votre aide.

Julie S.

Bonjour à tous,

Je m'excuse de t'avoir envoyé la mauvaise copie du fichier qui ne comprenait pas toutes mes modifications ...

Je l'ai déjà mentionné dans mes commentaires ... M'enfin ...

Lorsque l'on cherche la dernière ligne d'une plage de données, il faut la rechercher au niveau des données ... pas systématiquement sur la plage de la colonne A ... car, dans ce cas-ci, la colonne A est vide ...

Aussi, si tu avais placé un point d'arrêt (touche F9) et fait un pas-à-pas (touche F8), tu aurais vite constaté que derligne était à problématique ...

Dans Private Sub Cb_Click()

derligne = Sheets("SUIVI DES ECHANGES 2020").Range("B456541").End(xlUp).Row + 1

Avec de l'observation ... tu vas y arrivé ...

ric

Bonjour à tous,

Il y a aussi, quelques lignes plus bas, l'écriture dans la colonne D ...

Ceci fonctionnera mieux ...

Cells(derligne, 4) = IIf(Me.CheckBox1.Value = True, "Destinataires :", "Expéditeur :")

ric

Bonjour

j'avais mentionné dans mon post qu'il faut utiliser la colonne B et non A.même mieux la colonne C.

Vous pouvez modifier ce code déjà :

Private Sub UserForm_Initialize()

Dim iDerLig As Integer
Dim iLig As Integer

'liste des actions
cboActions.Clear
iDerLig = Range("C" & Rows.Count).End(xlUp).Row

For iLig = 4 To iDerLig
    cboActions.AddItem Range("C" & iLig).Value
Next iLig

cboActions.Value = ""

'par défaut : nouveau
optNouveau.Value = True

End Sub

Sinon je vous laisse avec Ric qui a prit votre demande en charge

Cordialment

Bonjour Dan,

Tu peux rester, ton code est meilleur que le mien ....

ric

Merci pour votre aide =)

Vraiment j'essaie de me creuser les méninges ^^

Lorsque je veux chercher une référence déjà existante en particulier "C4" celle-ci affiche un blocage.

TextBox1.Value = Range("B" & iTrouve).Value

J'ai utilisé la touche F8 et le point d'arrêt (touche F9) , mais je ne trouve pas.

Je comprend que la recherche ne va pas sur la ligne 4 mais je ne comprend pas où je peux modifier ça

Voici le fichier :

Si vous pouvez m'aider merci

Julie S.

Bonjour

Mettez ce code dans votre userform

Private Sub cboActions_change()
Dim iTrouve As Integer

With Sheets("SUIVI DES ECHANGES 2020")
    optExist.Value = True    'coche automatiquement
    'recherche la ligne correspondante
    On Error Resume Next
    iTrouve = WorksheetFunction.Match(cboActions.Value, .Range("C:C").EntireColumn, 0)
    If Err.Number > 0 Then MsgBox "Non trouvé !" & vbCrLf & cboActions.Value, vbExclamation: Exit Sub

    'DATE
    TextBox1.Value = .Range("B" & iTrouve).Value
    'REFERENCE
    TextBox2.Value = .Range("C" & iTrouve).Value
    'DESTINATAIRE EXPEDITEUR
    CheckBox1.Value = .Range("D" & iTrouve).Value
    'CONTACT
    TextBox3.Value = .Range("E" & iTrouve).Value
    'OBJET
    TextBox4.Value = .Range("F" & iTrouve).Value
    'DETAILS
    TextBox5.Value = .Range("G" & iTrouve).Value
End With
End Sub

Remarque : Dans votre fichier vous utilisez Private Sub UserForm_Activate() pour ouvrir l'userform. remplacez activate par --> Initialize

Cordialement

Merci pour votre réponse cela fonctionne

Par contre j'ai un petit soucis lorsque je cherche une référence existante. Si c'est l'expéditeur la CheckBox2 ne se coche pas.

Pouvez-vous m'aider ?

Merci par avance

Julie S

Bonjour

Dans le code Private Sub cboActions_change(), remplacez la ligne

DESTINATAIRE EXPEDITEUR
CheckBox1.value = Range("D" & iTrouve).Value

Par ceci :

'DESTINATAIRE EXPEDITEUR
If UCase(.Range("D" & iTrouve).Value) Like "*DESTINATAIRE*" Then
    CheckBox1 = True: CheckBox2 = False
Else: CheckBox2 = True: CheckBox1 = False
End If

Au fait je pense utile que vous supprimiez les : qui se trouvent derrière Expéditeur et Destinataire.

Rechercher des sujets similaires à "user form incrementer donnees recherche"