VBA alimentation d'une combobox
Résolu/Fermé
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
-
21 avril 2012 à 11:12
trinit@ Messages postés 119 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 16 mai 2012 - 21 avril 2012 à 18:21
trinit@ Messages postés 119 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 16 mai 2012 - 21 avril 2012 à 18:21
A voir également:
- VBA alimentation d'une combobox
- Ventilateur alimentation pc ne tourne pas ✓ - Forum Refroidissement
- Calculateur alimentation pc - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Aucune option d'alimentation n'est actuellement disponible - Guide
- Find vba - Astuces et Solutions
6 réponses
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 14:47
21 avril 2012 à 14:47
nobody for me ? (Je sais, no stress, mais j'y peux rien je suis comme ça :/ )
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 16:10
21 avril 2012 à 16:10
Bonjour,
Au moins pour commencer a esperer.
Private Sub UserForm_Activate()
Dim Plage, NbLigne
With Worksheets("Produits - Ne pas supprimer").Activate
'Derniere ligne colonne B
NbLigne = WorksheetFunction.CountA(Columns("B:B"))
'Page de cellules
Plage = Range(Cells(2, 1), Cells(NbLigne, 5)).Address
End With
'Nombre de colonne combobox
ComboBox1.ColumnCount = 5
'largeur Colonnes
ComboBox1.ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt"
'Entetes de colonne
ComboBox1.ColumnHeads = True
'Source combobox
ComboBox1.RowSource = Plage
End Sub
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex) & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00") & " - "
End With
End Sub
A+
Au moins pour commencer a esperer.
Private Sub UserForm_Activate()
Dim Plage, NbLigne
With Worksheets("Produits - Ne pas supprimer").Activate
'Derniere ligne colonne B
NbLigne = WorksheetFunction.CountA(Columns("B:B"))
'Page de cellules
Plage = Range(Cells(2, 1), Cells(NbLigne, 5)).Address
End With
'Nombre de colonne combobox
ComboBox1.ColumnCount = 5
'largeur Colonnes
ComboBox1.ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt"
'Entetes de colonne
ComboBox1.ColumnHeads = True
'Source combobox
ComboBox1.RowSource = Plage
End Sub
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex) & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00") & " - "
End With
End Sub
A+
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 16:17
21 avril 2012 à 16:17
Merci f894009 ! Pile ce qu'il me fallait ! Ce tableur est mon rapport final de BTS, je desesperait a l'idée de devoir le fausser à cause de ce VBA... merci !
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 16:18
21 avril 2012 à 16:18
Re,
Mais seul le nom du produit viendrais s'afficher dans ce dernier tableau.
Quel tableau??????
Mais seul le nom du produit viendrais s'afficher dans ce dernier tableau.
Quel tableau??????
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 16:26
21 avril 2012 à 16:26
C'est le premier tableau de la feuille "Calcul des produits". Ce tableau comporte trois colonnes : le nom (ce qui serait sélectionné dans le combobox viendrait s'ajouter à la suite), le prix, fixé manuellement par l'utilisateur et la rpiorité (ça aussi je gère).
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 16:29
21 avril 2012 à 16:29
Re,
Ajout par insertion ligne?
Ajout par insertion ligne?
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
Modifié par trinit@ le 21/04/2012 à 16:32
Modifié par trinit@ le 21/04/2012 à 16:32
Exactement, je pense à un truc du genre "row +1" mais impossible de savoir où placer ça :/
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 16:32
21 avril 2012 à 16:32
Re,
Je fais
Je fais
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 16:37
21 avril 2012 à 16:37
Tu sais que tu me sauves là ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
Modifié par f894009 le 21/04/2012 à 17:57
Modifié par f894009 le 21/04/2012 à 17:57
Re
'declaration pour tout l'Userform
Dim Prod_a_ajouter
'Bouton OK
Private Sub CommandButton1_Click()
Dim x As Integer
Dim c As Range, PCVideA
'Selection de l'onglet
Worksheets("Calcul des produits").Select
'Recherche cellule vide colonne A
Set c = IIf(Range("A5") = "", Range("A5"), Range("A4").End(xlDown))
PCVideA = c.Row + 1
'Insertion ligne
Rows(PCVideA & ":" & PCVideA).Insert Shift:=xlDown
'Ecriture Produit
Cells(PCVideA, 1) = Prod_a_ajouter
'Encadrement cellules
Range("A" & PCVideA & ":C" & PCVideA).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Modife pour recuperer le Nom Produit
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex)
'Nom du produit a ajouter
Prod_a_ajouter = .Text
.Text = .Text & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00")
End With
End Sub
Bonne suite
'declaration pour tout l'Userform
Dim Prod_a_ajouter
'Bouton OK
Private Sub CommandButton1_Click()
Dim x As Integer
Dim c As Range, PCVideA
'Selection de l'onglet
Worksheets("Calcul des produits").Select
'Recherche cellule vide colonne A
Set c = IIf(Range("A5") = "", Range("A5"), Range("A4").End(xlDown))
PCVideA = c.Row + 1
'Insertion ligne
Rows(PCVideA & ":" & PCVideA).Insert Shift:=xlDown
'Ecriture Produit
Cells(PCVideA, 1) = Prod_a_ajouter
'Encadrement cellules
Range("A" & PCVideA & ":C" & PCVideA).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Modife pour recuperer le Nom Produit
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex)
'Nom du produit a ajouter
Prod_a_ajouter = .Text
.Text = .Text & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00")
End With
End Sub
Bonne suite
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 18:04
21 avril 2012 à 18:04
Maintenant j'ai bien le userform et une ligne qui s'affiche en dessous du tableau, mais du coup le combobox est vide... :/ j'ai tenté un mix des deux mais je ne trouve rien. Est-ce que ton oeil éclairé pourrait remixer la sauce ?
Merci pour le travail que tu fais !
Merci pour le travail que tu fais !
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 18:07
21 avril 2012 à 18:07
Re,
Un mix des deux quoi???
Un mix des deux quoi???
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 18:09
21 avril 2012 à 18:09
des deux codes que tu as écris.avec le premier code, j'avais le combobx plein. Maintenant, j'ai le tableau. Mais plus le combobox est vide :/ .
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 18:13
21 avril 2012 à 18:13
Re,
Remplace par celui-ci
'declaration pour tout l'Userform
Dim Prod_a_ajouter
Private Sub CommandButton1_Click()
Dim PCVideA
'Selection de l'onglet
Worksheets("Calcul des produits").Select
'Recherche cellule vide colonne A
PCVideA = Columns(1).Find("", Range("A4").End(xlUp), , , xlByRows).Row
'Insertion ligne
Rows(PCVideA & ":" & PCVideA).Insert Shift:=xlDown
'Ecriture Produit
Cells(PCVideA, 1) = Prod_a_ajouter
'Encadrement cellules
Range("A" & PCVideA & ":C" & PCVideA).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex)
'Nom du produit a ajouter
Prod_a_ajouter = .Text
.Text = .Text & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00")
End With
End Sub
Private Sub UserForm_Activate()
Dim Plage, NbLigne
With Worksheets("Produits - Ne pas supprimer").Activate
'Derniere ligne colonne B
NbLigne = WorksheetFunction.CountA(Columns("B:B"))
'Page de cellules
Plage = Range(Cells(2, 1), Cells(NbLigne, 5)).Address
End With
'Nombre de colonne combobox
ComboBox1.ColumnCount = 5
'largeur Colonnes
ComboBox1.ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt"
'Entetes de colonne
ComboBox1.ColumnHeads = True
'Source combobox
ComboBox1.RowSource = Plage
End Sub
J'ai retrouve une formule de recherche en colonne plus simple.
Remplace par celui-ci
'declaration pour tout l'Userform
Dim Prod_a_ajouter
Private Sub CommandButton1_Click()
Dim PCVideA
'Selection de l'onglet
Worksheets("Calcul des produits").Select
'Recherche cellule vide colonne A
PCVideA = Columns(1).Find("", Range("A4").End(xlUp), , , xlByRows).Row
'Insertion ligne
Rows(PCVideA & ":" & PCVideA).Insert Shift:=xlDown
'Ecriture Produit
Cells(PCVideA, 1) = Prod_a_ajouter
'Encadrement cellules
Range("A" & PCVideA & ":C" & PCVideA).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
End Sub
Private Sub ComboBox1_Click()
'Affichage ligne choisie
With ComboBox1
.Text = .Column(0, .ListIndex)
'Nom du produit a ajouter
Prod_a_ajouter = .Text
.Text = .Text & " - " & _
Format(.Column(1, .ListIndex), "0.00") & " - " & _
Format(.Column(2, .ListIndex), "0.00") & " - " & _
Format(.Column(3, .ListIndex), "0.00") & " - " & _
Format(.Column(4, .ListIndex), "0.00")
End With
End Sub
Private Sub UserForm_Activate()
Dim Plage, NbLigne
With Worksheets("Produits - Ne pas supprimer").Activate
'Derniere ligne colonne B
NbLigne = WorksheetFunction.CountA(Columns("B:B"))
'Page de cellules
Plage = Range(Cells(2, 1), Cells(NbLigne, 5)).Address
End With
'Nombre de colonne combobox
ComboBox1.ColumnCount = 5
'largeur Colonnes
ComboBox1.ColumnWidths = "50 pt;50 pt;50 pt;50 pt;50 pt"
'Entetes de colonne
ComboBox1.ColumnHeads = True
'Source combobox
ComboBox1.RowSource = Plage
End Sub
J'ai retrouve une formule de recherche en colonne plus simple.
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 18:16
21 avril 2012 à 18:16
Génial, ça marche ! Merci milles fois, je te revaudrais ça sur CCM !
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 avril 2012 à 18:18
21 avril 2012 à 18:18
Re,
Content de vous avoir rendu service.
Bonne suite
Content de vous avoir rendu service.
Bonne suite
trinit@
Messages postés
119
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
16 mai 2012
8
21 avril 2012 à 18:21
21 avril 2012 à 18:21
Marci, vous aussi !