VBA: ComboBox et changements au niveau des champs du tableau
Fermé
Strawberrry
Messages postés
3
Date d'inscription
jeudi 24 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014
-
24 juil. 2014 à 01:24
Strawberrry Messages postés 3 Date d'inscription jeudi 24 juillet 2014 Statut Membre Dernière intervention 24 juillet 2014 - 24 juil. 2014 à 16:29
Strawberrry Messages postés 3 Date d'inscription jeudi 24 juillet 2014 Statut Membre Dernière intervention 24 juillet 2014 - 24 juil. 2014 à 16:29
A voir également:
- VBA: ComboBox et changements au niveau des champs du tableau
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
3 réponses
WeaponEDGE
Messages postés
113
Date d'inscription
vendredi 18 juillet 2014
Statut
Membre
Dernière intervention
21 novembre 2014
9
24 juil. 2014 à 10:28
24 juil. 2014 à 10:28
Bonjour,
Les macros dans les formulaires, contrairement au macros dans les modules, se déclenche via des évènements.
Après les diférents objets qui composent un formulaire ne repondent pas aux même critères.
Un Chekbox va renvoyer une valeur True ou false (en fonction s'iil est coché ou non) alors qu'un combobox peux renvoyer une infinité de valeur suivant la manière dont il est alimenté.
Voici un fichier présentant 2 méthodes pour alimenter le "*" :
- La première l'effectuer à la sélection dans le ComboBox
- La seconde à la validation en fonction de la ListBox alimenté.
https://www.cjoint.com/?0GykCmkUGkq
Les macros dans les formulaires, contrairement au macros dans les modules, se déclenche via des évènements.
Après les diférents objets qui composent un formulaire ne repondent pas aux même critères.
Un Chekbox va renvoyer une valeur True ou false (en fonction s'iil est coché ou non) alors qu'un combobox peux renvoyer une infinité de valeur suivant la manière dont il est alimenté.
Voici un fichier présentant 2 méthodes pour alimenter le "*" :
- La première l'effectuer à la sélection dans le ComboBox
- La seconde à la validation en fonction de la ListBox alimenté.
https://www.cjoint.com/?0GykCmkUGkq
Strawberrry
Messages postés
3
Date d'inscription
jeudi 24 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014
24 juil. 2014 à 16:24
24 juil. 2014 à 16:24
Bonjour,
Je vous remercie infiniment de m'avoir répondu, j'en suis très reconnaissante.
Je vais abuser, et je m'en excuse, sauf que, je remplis le combobox à partir des champs de la table qui sont présentés sur la capture d'écran, c'est-à-dire que je dois faire une boucle sur les colonnes et non les lignes comme il s'agit dans votre programme :
J'avais essayé de le remplir avec ceci et ça a marché:
Voici la capture d'écran:
[img]C:\Users\user\Desktop\feuille.png/img
Je vous remercie infiniment de m'avoir répondu, j'en suis très reconnaissante.
Je vais abuser, et je m'en excuse, sauf que, je remplis le combobox à partir des champs de la table qui sont présentés sur la capture d'écran, c'est-à-dire que je dois faire une boucle sur les colonnes et non les lignes comme il s'agit dans votre programme :
Nb_Ligne = Sheets(1).Cells(Rows.Count, 7).End(xlUp).Row
For i = 2 To Nb_Ligne
UserForm2.ComboBox1.AddItem Sheets(1).Cells(i, 7)
Next i
J'avais essayé de le remplir avec ceci et ça a marché:
Private Sub UserForm_Initialize()Sauf que dans mon bouton de commande qui, une fois on fait entrer le code de dossier et on choisit les anomalies, càd ici :
Dim Tableau As Variant
Tableau = Range("B1:F1").Value
ComboBox2.Column() = Tableau
End Sub
Private Sub CommandButton1_Click()Je me suis dit que là encore il faudrait que j'utilise ta 2ème méthode pour introduire les "*", sauf qu'elle ne marche pas vu que je dois boucler sur les colonnes et non les lignes;
' Bouton Ajouter
Sheets("Feuil1").Select
Dim no_ligne As Integer 'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1
Dim I As Integer
If MsgBox("Confirmez-vous l'insertion de ce nouveau dossier ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
no_ligne = Range("A1048576").End(xlUp).Row + 1
If ComboBox1.Text = "" Then
MsgBox (" Entrer le code de dossier s'il vous plait ")
Exit Sub
Else
If ComboBox1.ListIndex = -1 Then
Cells(no_ligne, 1).Value = ComboBox1
For I = 1 To 5
If Me.Controls("CheckBox" & I) = True Then
Cells(no_ligne, I + 1).Value = "*"
Else
Cells(no_ligne, I + 1).Value = " "
End If
'cells(no_ligne, I + 1).Value = Me.Controls("CheckBox" & I)
Next
Else: MsgBox ("Dossier déja existant")
End If
End If
End If
Voici la capture d'écran:
[img]C:\Users\user\Desktop\feuille.png/img
Strawberrry
Messages postés
3
Date d'inscription
jeudi 24 juillet 2014
Statut
Membre
Dernière intervention
24 juillet 2014
24 juil. 2014 à 16:29
24 juil. 2014 à 16:29
Voilà la capture d'écran:
http://www.hostingpics.net/viewer.php?id=449384feuille.png
Merci énormément.
http://www.hostingpics.net/viewer.php?id=449384feuille.png
Merci énormément.