Remplir un TextBox avec une lListeBox

dmoluc

XLDnaute Occasionnel
Bonsoir tout le monde,

J'avance un peu plus dans la découverte de VBA et me lance maintenant dans les listBox mais pas sans problème.
Sur un UserForm j'ai une ListBox simple que je remplis à partir d'une feuille excel que je me sert comme base de données
Voilà le code qui fonctionne :

Code:
Private Sub UserForm_Initialize()

Sheets("Caractéristiques des matériaux").Activate

Dim lig As Byte, fin As Byte, mavar As Range, ind As Double

fin = Range("A2").End(xlDown).Row
For lig = 2 To fin
ListBox1.AddItem Cells(lig, "A")
 Next
 
End Sub

Ensuite par rapport à l'item selectionner je voudrais faire une recherche sur la feuille excel pour retrouver cet item et aller chercher sur la même ligne dans la cinquième colonne une valeur numérique et l'inscrire dans le TextBox du même UserForm avec cette ligne de code

Code:
TextBox5.Value = Range("A2:A47").Find(Me.ListBox1).Offset(0, 4).Value

Les contrôles sont sur un multipage de l'userForm, sur la feuille pelle, je ne sais pas si c'est important mais de toute façon quand je rajoute la ligne de recherche j'ai "erreur 91 variable ou objet de bloc with non définie" et cela me renvoi à la macro dde lancement de l'userForm

Merci pour votre aide

cordialement

Didier
 

youky(BJ)

XLDnaute Barbatruc
Re : Remplir un TextBox avec une lListeBox

Bonsoir Laetitia,
Perso je suis comme toi, y a pas de truc mais un problème.
dmoluc a sans doute fait une fausse manip sur cjoint ????
Bruno

Edit: je suis à la bourre le fichier est bien là
 
Dernière édition:

dmoluc

XLDnaute Occasionnel
Re : Remplir un TextBox avec une lListeBox

Re Bonsoir
Encore un nouveau problème de recherche avec conditions multiples ; sais très bien faire avec une formule mais en VBA je ne vois pas comment faire simplement

voilà ce que donne la formule : =SI(OU(B71="";F71="");"";SI(B71="Bouteur D4";RECHERCHEV(F71;BULL!$D$16:$U$121;18;FAUX);SI(B71="Bouteur D5";RECHERCHEV(F71;BULL!$D$16:$U$121;16;FAUX);SI(B71="Bouteur D6";RECHERCHEV(F71;BULL!$D$16:$U$121;14;FAUX);SI(B71="Bouteur D7S";RECHERCHEV(F71;BULL!$D$16:$U$121;12;FAUX);SI(B71="Bouteur D7U";RECHERCHEV(F71;BULL!$D$16:$U$121;10;FAUX);SI(B71="Bouteur D8S";RECHERCHEV(F71;BULL!$D$16:$U$121;8;FAUX);SI(B71="Bouteur D8U";REUCHERCHEV(F71;BULL!$D$16:$U$121;6;FAUX);SI(B71="Bouteur D9S";RECHERCHEV(F71;BULL!$D$16:$U$121;4;FAUX);SI(B71="Bouteur D9U";RECHERCHEV(F71;BULL!$D$16:$U$121;2;FAUX);""))))))))))

J'ai une condition différente par machine donc je pense être obliger de répéter ces conditions. Par exemple si je choisi dans une listBox6 D9U dont l'adresse est Feuille Bull, "E15"
ensuite je dois chercher la distance de pousse que j'entre dans la TexBox48 que je dois comparer à la plage de cellule ("D16:D121") puis lorsque j'ai trouvé la ligne, me déplacer jusqu'à la colonne D9U (Colonne 5)

J'ai pensé à un truck répéter autant de fois que j'ai de sorte de machine
Dim Ligne As String, Colonne As String, Rh As Double

If LisBox6 = "D9U" And TextBox48 <> "" Then
Sheets("Bull").Activate
Ligne = Application.Match(Me.TextBox48 * 1, Column(5))
Colonne = 5
Rh = Cell(Ligne, Colonne).Value
Sheets("Programme des travaux").Activate
End If

Je me servirais en suite de Rh pour mon calcul final
 

dmoluc

XLDnaute Occasionnel
Re : Remplir un TextBox avec une lListeBox

Bon ma rechercheV en VB ne fonctionne pas :(

Code:
Private Sub CommandButton5_Click()
Dim Rh As Double, Pe As Double, Ligne As String, Colonne As String, Lig As String, Col As String, eff As Double
If ListBox6 = "Bouteur D9U" And TextBox48 <> "" And TextBox52 <> "" Then
Sheets("BULL").Activate

'Erreur Sub ou fonction non définie "UserForm5.TextBox48"

Ligne = Application.Match(UserForm5.TextBox48 * 1, Column(5))
Colonne = 5
Rh = Cell(Ligne, Colonne).Value

'ça c'est à peu prêt au point

Set Cel = Range("Y47:Y107").Find(Me.TextBox52.Value, LookIn:=xlValues, lookat:=xlWhole)
 Lig = Cel.Row
 Col = 25
 Pe = Cell(Lig, Col).Value
Sheets("Programme des travaux").Activate
eff = (TextBox47 / 60)
TextBox54.Value = (Rh * Pe * TextBox50.Value * eff)
If TextBox51.Value <> "" Then
TextBox53.Value = (TextBox54.Value * TextBox51.Value)
Else
TextBox53.Value = (TextBox54.Value * 8)
End If
End If
End Sub

Peu être que la nuit me portera conseil


Bonsoir à tous
 

dmoluc

XLDnaute Occasionnel
Re : Remplir un TextBox avec une lListeBox

Bonjour à Tous,

La nuit ne m'a pas vraiment aider. J'ai laisser tombé la méthode match pour la méthode find. Maintenant je trouve bien la ligne concernée mais quand je cherche la valeur ça plante

Rh = ActiveSheet.Cells(Ligne, Colonne).Value "erreur d'exécution 1004" erreur définie par l'application ou par l'objet

pourtant la ligne et le colonne sont bonnes et la cellule concerné contient bien la valeur cherchée
Décidément je n'y comprend plus rien
Merci pour votre aide

Cordialement

Didier
 

dmoluc

XLDnaute Occasionnel
Re : Remplir un TextBox avec une lListeBox

Si je fais : Rh = Range("E31").Value qui correspond au N° de ligne et de colonne
je trouve bien la valeur

Alors pourquoi cela ne fonctionne pas avec Rh = Cell(Ligne, Colonne).Value
Normalement c'est la même chose ?????

merci pour votre aide
 

dmoluc

XLDnaute Occasionnel
Re : Remplir un TextBox avec une lListeBox

Bonjour Bruno

J'ai mis Colonne et Ligne en Variable four-tout et ça ne fonctionne pas mieux (Dim Colonne, Dim Ligne)
Cells(Ligne, Colonne)=1050 et c'est bien la bonne valeur mais
Rh = Range(Cells(Ligne, Colonne)).Value plante ??????? Rh est déclaré en Double puisque cela peu être un nombre à virgule

Je ne vois vraiment pas pourquoi ça plante

cordialement
 

Discussions similaires

Réponses
18
Affichages
635

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote