Dans un UserForm j'ai une ListBox affichant les données de la première
colonne de la feuille BD. Dans cette UserForm, j'ai également une dizaine de
TextBox affichant les données des autres colonnes. En cliquant sur une
donnée de la ListBox cela m'affiche dans les TextBox les données
correspondantes.
Dans la colonne K de la feuille BD, j'ai 2 valeurs différentes ("Partiel" et
"Total") ou vide.
J'aimerais récupérer dans cette listBox que les données correspondant à
Partiel ou vide.
J'aimerais également avoir un bouton "Archive" pouvant mettre le mot "Total"
dans la colonne K de la ligne correspondant au choix.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pounet95
Bonjour David, Je pense avoir compris que la listbox ne doit être remplie qu'avec les données de la colonne A pour lesquelles en correspondance en colonne K il y a ou "Partiel" ou rien ! A mon avis , 2 possibilités : 1) effectuer un filtre élaboré avec résultat dont la plage serait nommée sur une autre feuille, 2) remplir la liste par une boucle ( For ... Next, Do While ...Loop ) lisant les cellules de la colonne A en séquence et en ajoutant au fur et à mesure les valeurs valides (üt(col K) )
Reviens ici si tu veux plus d'aide.
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam) a écrit dans le message de news: %23rTayqK$
Bonjour à tous
Dans un UserForm j'ai une ListBox affichant les données de la première colonne de la feuille BD. Dans cette UserForm, j'ai également une dizaine de TextBox affichant les données des autres colonnes. En cliquant sur une donnée de la ListBox cela m'affiche dans les TextBox les données correspondantes. Dans la colonne K de la feuille BD, j'ai 2 valeurs différentes ("Partiel" et "Total") ou vide.
J'aimerais récupérer dans cette listBox que les données correspondant à Partiel ou vide.
J'aimerais également avoir un bouton "Archive" pouvant mettre le mot "Total" dans la colonne K de la ligne correspondant au choix.
Pas très clair tout ça, je le sent !!!!
Merci à celui qui aura compris
Salutations
David
Bonjour David,
Je pense avoir compris que la listbox ne doit être remplie qu'avec les
données de la colonne A pour lesquelles
en correspondance en colonne K il y a ou "Partiel" ou rien !
A mon avis , 2 possibilités :
1) effectuer un filtre élaboré avec résultat dont la plage serait nommée sur
une autre feuille,
2) remplir la liste par une boucle ( For ... Next, Do While ...Loop ) lisant
les cellules de la colonne A
en séquence et en ajoutant au fur et à mesure les valeurs valides
(üt(col K) )
Reviens ici si tu veux plus d'aide.
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam)direction-ternoise@wanadoo.fr> a écrit dans le message
de news: %23rTayqK$EHA.2316@TK2MSFTNGP15.phx.gbl...
Bonjour à tous
Dans un UserForm j'ai une ListBox affichant les données de la première
colonne de la feuille BD. Dans cette UserForm, j'ai également une dizaine
de
TextBox affichant les données des autres colonnes. En cliquant sur une
donnée de la ListBox cela m'affiche dans les TextBox les données
correspondantes.
Dans la colonne K de la feuille BD, j'ai 2 valeurs différentes ("Partiel"
et
"Total") ou vide.
J'aimerais récupérer dans cette listBox que les données correspondant à
Partiel ou vide.
J'aimerais également avoir un bouton "Archive" pouvant mettre le mot
"Total"
dans la colonne K de la ligne correspondant au choix.
Bonjour David, Je pense avoir compris que la listbox ne doit être remplie qu'avec les données de la colonne A pour lesquelles en correspondance en colonne K il y a ou "Partiel" ou rien ! A mon avis , 2 possibilités : 1) effectuer un filtre élaboré avec résultat dont la plage serait nommée sur une autre feuille, 2) remplir la liste par une boucle ( For ... Next, Do While ...Loop ) lisant les cellules de la colonne A en séquence et en ajoutant au fur et à mesure les valeurs valides (üt(col K) )
Reviens ici si tu veux plus d'aide.
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam) a écrit dans le message de news: %23rTayqK$
Bonjour à tous
Dans un UserForm j'ai une ListBox affichant les données de la première colonne de la feuille BD. Dans cette UserForm, j'ai également une dizaine de TextBox affichant les données des autres colonnes. En cliquant sur une donnée de la ListBox cela m'affiche dans les TextBox les données correspondantes. Dans la colonne K de la feuille BD, j'ai 2 valeurs différentes ("Partiel" et "Total") ou vide.
J'aimerais récupérer dans cette listBox que les données correspondant à Partiel ou vide.
J'aimerais également avoir un bouton "Archive" pouvant mettre le mot "Total" dans la colonne K de la ligne correspondant au choix.
Pas très clair tout ça, je le sent !!!!
Merci à celui qui aura compris
Salutations
David
David
Bonjour et merci Pounet95
Je veux bien un peux plus d'aide.
En fait j'utilise ceci pour initialiser ma ListBox
Re, Etant donné que tu utilises une plage nommée pour la propriété RowSource du Listbox, je te propose d'en constituer une à partir d'un filtre élaboré ( c'est peu différent de l'automatique ! )
Voici un code à adapter en fonction de tes besoins. A mettre dans le module du Userform Attention aux lignes coupées !!!
Private Sub UserForm_Initialize() Crée_Filtre_Elaboré ListBox1.RowSource = "MaListe" End Sub
Private Sub Crée_Filtre_Elaboré() 'la base de donnée occupe les colonnes A, et C 'la ligne 1 contient le nom des colonnes 'Créer les différentes plages du filtre 'copie les noms des champs A1 à C1 en F1 et F6 Sheets("Feuil1").Activate Range("A1:C1").Copy Range("F1,F6").Activate Range("F6").Activate ActiveSheet.Paste 'Définit la zone des données Range("A1:C1").Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Names.Add Name:="MaPlage", _ RefersToR1C1:="þuil1!R1C1:R10C3" 'Définit la zone des Critères 'sur 2 lignes car utilise Partiel OU vide Range("F1:H3").Select ActiveWorkbook.Names.Add Name:="MesCritères", _ RefersToR1C1:="þuil1!R1C6:R3C8" 'Définit la zone d'Extraction Range("F6:H6").Select ActiveWorkbook.Names.Add Name:="MonRésultat", _ RefersToR1C1:="þuil1!R6C6:R6C8" 'Pose les Critères Range("H2").Select ActiveCell.FormulaR1C1 = "Partiel" Range("H3").Select ActiveCell.FormulaR1C1 = "'=" 'Extrait les données Range("MaPlage").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "MesCritères"), CopyToRange:=Range("MonRésultat"), Unique:úlse 'Détermine la liste pour le RowSource lig = Range("F65536").End(xlUp).Row Select Case lig Case 6 'il n'y a pas de donnée pour les critères Case 7 'une seule ligne Range("F7:F7").Select Case Else 'plusieurs lignes Range("F7:F" & lig).Select End Select 'Nomme la liste ActiveWorkbook.Names.Add Name:="MaListe", RefersToR1C1:=Selection 'Renseigne la propriété RowSource ListBox1.RowSource = "MaListe" End Sub
Cela devrait permettre de voir le principe Si problème, demande. Il y aura toujours quelqu'un pour répondre
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam) a écrit dans le message de news: u83QqYM$
Bonjour et merci Pounet95
Je veux bien un peux plus d'aide.
En fait j'utilise ceci pour initialiser ma ListBox
Re,
Etant donné que tu utilises une plage nommée pour la propriété RowSource du
Listbox, je te propose d'en constituer une
à partir d'un filtre élaboré ( c'est peu différent de l'automatique ! )
Voici un code à adapter en fonction de tes besoins. A mettre dans le module
du Userform
Attention aux lignes coupées !!!
Private Sub UserForm_Initialize()
Crée_Filtre_Elaboré
ListBox1.RowSource = "MaListe"
End Sub
Private Sub Crée_Filtre_Elaboré()
'la base de donnée occupe les colonnes A, et C
'la ligne 1 contient le nom des colonnes
'Créer les différentes plages du filtre
'copie les noms des champs A1 à C1 en F1 et F6
Sheets("Feuil1").Activate
Range("A1:C1").Copy
Range("F1,F6").Activate
Range("F6").Activate
ActiveSheet.Paste
'Définit la zone des données
Range("A1:C1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="MaPlage", _
RefersToR1C1:="þuil1!R1C1:R10C3"
'Définit la zone des Critères
'sur 2 lignes car utilise Partiel OU vide
Range("F1:H3").Select
ActiveWorkbook.Names.Add Name:="MesCritères", _
RefersToR1C1:="þuil1!R1C6:R3C8"
'Définit la zone d'Extraction
Range("F6:H6").Select
ActiveWorkbook.Names.Add Name:="MonRésultat", _
RefersToR1C1:="þuil1!R6C6:R6C8"
'Pose les Critères
Range("H2").Select
ActiveCell.FormulaR1C1 = "Partiel"
Range("H3").Select
ActiveCell.FormulaR1C1 = "'="
'Extrait les données
Range("MaPlage").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Range( _
"MesCritères"), CopyToRange:=Range("MonRésultat"), Unique:úlse
'Détermine la liste pour le RowSource
lig = Range("F65536").End(xlUp).Row
Select Case lig
Case 6
'il n'y a pas de donnée pour les critères
Case 7
'une seule ligne
Range("F7:F7").Select
Case Else
'plusieurs lignes
Range("F7:F" & lig).Select
End Select
'Nomme la liste
ActiveWorkbook.Names.Add Name:="MaListe", RefersToR1C1:=Selection
'Renseigne la propriété RowSource
ListBox1.RowSource = "MaListe"
End Sub
Cela devrait permettre de voir le principe
Si problème, demande. Il y aura toujours quelqu'un pour répondre
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam)direction-ternoise@wanadoo.fr> a écrit dans le message
de news: u83QqYM$EHA.2568@TK2MSFTNGP11.phx.gbl...
Bonjour et merci Pounet95
Je veux bien un peux plus d'aide.
En fait j'utilise ceci pour initialiser ma ListBox
Re, Etant donné que tu utilises une plage nommée pour la propriété RowSource du Listbox, je te propose d'en constituer une à partir d'un filtre élaboré ( c'est peu différent de l'automatique ! )
Voici un code à adapter en fonction de tes besoins. A mettre dans le module du Userform Attention aux lignes coupées !!!
Private Sub UserForm_Initialize() Crée_Filtre_Elaboré ListBox1.RowSource = "MaListe" End Sub
Private Sub Crée_Filtre_Elaboré() 'la base de donnée occupe les colonnes A, et C 'la ligne 1 contient le nom des colonnes 'Créer les différentes plages du filtre 'copie les noms des champs A1 à C1 en F1 et F6 Sheets("Feuil1").Activate Range("A1:C1").Copy Range("F1,F6").Activate Range("F6").Activate ActiveSheet.Paste 'Définit la zone des données Range("A1:C1").Select Range(Selection, Selection.End(xlDown)).Select ActiveWorkbook.Names.Add Name:="MaPlage", _ RefersToR1C1:="þuil1!R1C1:R10C3" 'Définit la zone des Critères 'sur 2 lignes car utilise Partiel OU vide Range("F1:H3").Select ActiveWorkbook.Names.Add Name:="MesCritères", _ RefersToR1C1:="þuil1!R1C6:R3C8" 'Définit la zone d'Extraction Range("F6:H6").Select ActiveWorkbook.Names.Add Name:="MonRésultat", _ RefersToR1C1:="þuil1!R6C6:R6C8" 'Pose les Critères Range("H2").Select ActiveCell.FormulaR1C1 = "Partiel" Range("H3").Select ActiveCell.FormulaR1C1 = "'=" 'Extrait les données Range("MaPlage").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "MesCritères"), CopyToRange:=Range("MonRésultat"), Unique:úlse 'Détermine la liste pour le RowSource lig = Range("F65536").End(xlUp).Row Select Case lig Case 6 'il n'y a pas de donnée pour les critères Case 7 'une seule ligne Range("F7:F7").Select Case Else 'plusieurs lignes Range("F7:F" & lig).Select End Select 'Nomme la liste ActiveWorkbook.Names.Add Name:="MaListe", RefersToR1C1:=Selection 'Renseigne la propriété RowSource ListBox1.RowSource = "MaListe" End Sub
Cela devrait permettre de voir le principe Si problème, demande. Il y aura toujours quelqu'un pour répondre
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/
"David" <(Pas de Spam) a écrit dans le message de news: u83QqYM$
Bonjour et merci Pounet95
Je veux bien un peux plus d'aide.
En fait j'utilise ceci pour initialiser ma ListBox