Combobox et textbox

Bonjour le forum

je sèche

j"ai un classeur avec 2 feuilles (1 clients) + (1 Compta_bar)

la feuille (Clients) est alimenter par userform et cela marche bien

C_Id Titre Nom Prénom

1 M QUESAN Benoît

la feuille Compta_bar est alimenter par un userform dans celui-ci j'ai un combobox qui est alimenter par la liste non de la feuille (clients)

je voudrais remplir des textbox1,2,3,4 avec la combobox en récupérant C_Id,Titre,Nom,prénom, de la feuille (clients) dans le même ordre,

en espérant être clair

Merci à vous tous de votre expérience

Jean claude

bonjour

donne au moins un modèle de ton fichier car la je ne voie rien

A+

Maurice

Bonsoir archer

merci de la réponse

je passe le classeur

merci et bonne soirée

jean claude

26essaicompta.xlsm (65.79 Ko)

Bonsoir le fil, bonsoir le forum,

Tout à fait d'accord avec Maurice, tu pourrais au moins faire l'effort de fournir un fichier exemple. Mais bon, habitué aux flemmards qui sévices dans les forums, je te propose le code ci-dessous :

Private OC As Worksheet 'déclare la variable OC (Onglet Clients)
Private OBC As Workshee 'déclare la variable OCB (Onglet Compta_bar)

Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

Set OC = Worksheets("Clients") 'définit l'onglet OC
Set OCB = Worksheets("Compta_bar") 'définit l'onglet OCB
DL = OC.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet OC
Me.ComboBox1.List = OC.Range("C2:C" & DL).Value 'alimente la ComboBox1 avec la liste des noms en colonne C
End Sub

Private Sub ComboBox1_Change() 'au changement dan sla ComboBox1
Dim LI As Integer 'déclare la variable LI (LIgne)

If Me.ComboBox1.Value = "" Then 'condition : si la ComboBox1 est rffacée
    Me.TextBox1.Value = "" 'vide la textBox1
    Me.TextBox2.Value = "" 'vide la textBox2
    Me.TextBox3.Value = "" 'vide la textBox3
    Me.TextBox4.Value = "" 'vide la textBox4
    Exit Sub 'sort de la procédure
End If 'fin de la condition
LI = Me.ComboBox1.ListIndex + 2 'définit la ligne LI
Me.TextBox1.Value = OC.Cells(LI, 1).Value 'récupère dans la TextBox1 la valeur de la cellule ligne LI colonne 1 de l'onglet OC
Me.TextBox2.Value = OC.Cells(LI, 2).Value 'récupère dans la TextBox2 la valeur de la cellule ligne LI colonne 2 de l'onglet OC
Me.TextBox3.Value = OC.Cells(LI, 3).Value 'récupère dans la TextBox3 la valeur de la cellule ligne LI colonne 3 de l'onglet OC
Me.TextBox4.Value = OC.Cells(LI, 4).Value 'récupère dans la TextBox4 la valeur de la cellule ligne LI colonne 4 de l'onglet OC
End Sub

[Édition]

Arf ! nos posts se sont croisés...

Bonsoir du flemmard agé

à ThauThème et le forum,

je te remercie de ta réponse,

je vous tiens au courant

bonne soirée jean claude


reb bonsoir

après les essais

une erreur ce produit

a+ jean claude

capture1

Re,

Il semblerait que tu n'aies pas copié ces deux lignes en tout début du code de l'UserForm :

Private OC As Worksheet 'déclare la variable OC (Onglet Clients)
Private OBC As Workshee 'déclare la variable OCB (Onglet Compta_bar)

re

oui oui j'ai copier les deux lignes

avec changement OCB à la place de OBC et Workshee en Worksheets

je repasse le fichier

a+ jean claude

15essaicompta.xlsm (69.33 Ko)

Bonjour

ThauTheme archer et le forum

toujours la même erreur j'ai passer le classeur avec les modifications

je ne sais plus quoi faire

merci bonne journée

jean claude

Bonjour le fil, bonjour le forum,

Désolé pour les erreurs je navet (si, si, dans ce cas on peut...) pas relu...

L'alimentation de la ComboBox1, telle que je te la propose, est incompatible avec la propriété [RowSource] de la même. Pour que cela fonctionne il faut supprimer cette propriété.

Ton fichier modifié :

33ferdinand-v01.xlsm (61.54 Ko)

Re , ThauThème et le fil

désolé je ne l'ai pas supprimer le [RowSource] c'est ma faute

merci cela marche

j'ai d'autres questions à demander toujours sur cette base

bonne journée jean claude

bonjour

peux être plus simple pour toi

A+

Maurice

Private Sub UserForm_Initialize()
   With ComboBox1
      .ColumnCount = 4
      .ColumnWidths = "0;15;0"
      .List = Feuil1.Range("A2:D" & Feuil1.Range("A" & Rows.Count).End(xlUp).Row).Value
   End With
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then Exit Sub
   TextBox1.Value = ComboBox1.Column(0)
   TextBox2.Value = ComboBox1.Column(1)
   TextBox3.Value = ComboBox1.Column(2)
   TextBox4.Value = ComboBox1.Column(3)
End Sub

Bonjour

Merci Maurice de ta réponse je vais essayer les deux méthodes,

pour ThauThème

sur ton code peut on avoir dans la combobox 1 la civilité, le nom,le prénom car des fois j'ai 2 pilotes de la même famille (donc même nom)

merci d'avance jean claude


re le fil et forum,

pour les colonnes dans le combobox1 j'ai trouvé avec le code de maurice en le modifiant un chouya,

merci à vous deux

jean claude

je vais revenir pour la partie modification de une ligne à qu'il y ai un qui ce penche dessus merci d'avance

Re,

FERDINAND a écrit :

je vais revenir pour la partie modification de une ligne à qu'il y ai un qui ce penche dessus merci d'avance

Après l'achat d'un décodeur FERDINAND/Français je crois avoir compris !...

Pour modifier une ligne utilise la propriété [ListIndex] de la ComboBox1, comme je l'ai fait dans Private Sub ComboBox1_Change(). Le premier élément commence à la ligne 2 et a 0 comme ListIndex (ligne 3 et 1 pour le second élément, etc.). Pour modifier la ligne LI d'un élément c'est donc LI = Me.ComboBox1Listindex + 2.

Sinon je trouve la proposition de Maurice plus pratique puisqu'elle t'éviterait 4 textboxes...

bonjour

pour la création

Private Sub Button2_Click()
Dim Tmp
Dim C As Long
Dim Nlig As Long
Set WS = Sheets("Compta_bar")
Nlig = WS.Range("A" & Rows.Count).End(xlUp).Row + 1
   For C = 1 To 22
      Tmp = Controls("TextBox" & C).Value
         If IsDate(Tmp) Then Tmp = CDate(Tmp)
         If IsNumeric(Tmp) Then Tmp = CDbl(Tmp)
      WS.Cells(Nlig, C) = Tmp
   Next
    Unload Me
End Sub

A+

Maurice

re le fil

Pour maurice cet parfait cela évite pas mal de ligne à taper cela fonctionne,

pour ThauThème je ne voie pas comment le faire si tu peut !!!, la nullité existe c'est moi,

bon appétit

merci encore à vous deux jean claude

Re,

Renvoie le fichier avec la version que tu as choisie (ListBox 4 colonnes ou 4 textboxes) et ou Maurice ou moi-même on t'expliquera...

re le fil

je passe le dernier fichier merci,

avec le code de ThauThème pour la combobox

et la validation celui de maurice j'ai supprimer le miens,

bon app jean claude

12ferdinand-v02.xlsm (73.21 Ko)

Bonjour le fil, bonjour le forum,

Dans ton cas ce que je te propose ne fonctionne pas. Puisque la majorité des lignes ont les mêmes données dans le 4 premières colonnes. Comment veux tu dire au code de choisir telle ou telle ligne pour la modifier.

J'ai pensé me servir de la date Jour pour différencier les lignes mais, même là, tu as des clients qui ont la même date.

Alors, soit l'exemple fourni ne correspond pas à la réalité et il te faut nous fournir un fichier plus réaliste, soit il est réaliste et il te faut nous dire dans quelle colonne se trouve la donnée qui, à coup sûr, nous permettra de différencier le même client...

Après on pourra te proposer des solutions...

Bonjour le fil, bonjour le forum,

Alors la tu me pose un problème,

après réflexion je dois faire le trie (sur le nom et la date de la prestation) dans un tableau et cliquer sur la ligne à modifier et valider la modif,

ou

cliquer sur la ligne de la feuille et ouvrir l'userform3 avec les textbox remplies et valider la modif

voir modèle en PJ

merci encore jean claude

capture3
8ferdinand-v03.xlsm (65.18 Ko)

Bonjour le fil, bonjour le forum,

Jean Claude je t'avoue n'avoir jamais travaillé avec des requêtes SQL. Donc ton code me pose problème.

En pièce jointe une autre solution :

• La recherche se fait désormais via le bouton Rechercher (en bas à droite d l'userForm)

• Cela ouvre une nouvelle userForm dans laquelle tu vas taper le texte recherché

• en fonction du texte édité la liste s'affiche

• clique sur élément de la liste pour rouvrir l'Userform initiale avec les données du client choisi affichées

• modifie puis le bouton valider va valider la ligne du client choisie

En fait tout se joue avec la variable publique LI. Si elle est nulle (aucune recherche n'a été faite) le bouton Valider va agir sur la première ligne vide du tableau, sinon le bouton va agit sur la ligne de l'élément sélectionné...

le fichier :

25ferdinand-v04.xlsm (62.82 Ko)
Rechercher des sujets similaires à "combobox textbox"